掲示板

LR 5.1.2 post login action / default landing page

12年前 に Viktor Bartuszek によって更新されました。

LR 5.1.2 post login action / default landing page

New Member 投稿: 5 参加年月日: 11/01/18 最新の投稿
Sziasztok,

Liferay 5.1.2-ben dolgozunk, amiben azt szeretnénk megoldani, hogy a userk bejelentkezés után egy fixen meghatározott oldalra legyenek továbbítva.

Szimplán a portal-ext.properties-ben megadott "default.landing.page.path" beállítása nem hozott eredményt.
Készült egy Custom login post action, amit debugolva láthatóan a LastPath értékek beállítása megtörténik, mégsem lesz belőle redirect:

portal-ext.properties
default.landing.page.path=/web/guest/wall
auth.forward.by.last.path=true
login.events.post=com.liferay.portal.events.DefaultLandingPageAction,com.liferay.portal.events.CustomLoginPostAction


CustomLoginPostAction
public class CustomLoginPostAction extends Action {

	private static Log _log = LogFactoryUtil.getLog(CustomLoginPostAction.class);

	public void run(HttpServletRequest req, HttpServletResponse res) throws ActionException {
		try {

			HttpSession ses = req.getSession();
			Map params = new HashMap();

			User loginUser =
					UserLocalServiceUtil.getUser(com.liferay.portal.util.PortalUtil.getUserId(req));

			LastPath lastPath = null;

			if (loginUser == null) {
				lastPath = new LastPath("/c", "/portal/layout", params);
			} else {
				lastPath = new LastPath("", "/web/guest/wall", params);
			}

			ses.setAttribute(WebKeys.LAST_PATH, lastPath);
		} catch (Exception e) {
			throw new ActionException(e);
		}
	}
}


Milyen alternatíva jöhet még szóba?
12年前 に György RÁCZ によって更新されました。

RE: LR 5.1.2 post login action / default landing page

Junior Member 投稿: 62 参加年月日: 10/07/17 最新の投稿
Szia Viktor!

Nálunk egy Hook-al van megoldva a probléma (Enterprise Edition 5.2 EE SP4-et használunk), úgyhogy szerintem Nálad is működnie kell ennek a megoldásnak.

A Hook portal.properties-ébe:

login.events.post=hu.geosoft.login.action.CustomLoginPostAction


A CustomLoginPostAction.java:


@Override
public void run(HttpServletRequest request, HttpServletResponse response) throws ActionException {
	try {
                // esetleg valami feltétel ami alapján tovább dobod az adott felhasználót
                String friendlyURL = XYZ.getFriendlyURL(); // adott CommunityFriendly URL-je
		String url = "/group" + friendlyURL + "/nyito";
		response.sendRedirect(url);
	} catch (Exception e) {
                throw new ActionException(e);
       }
}


Ha esetleg így sem működne akkor jelezd, szerintem a többieknek is lesz még ötletük.

Üdv,
Gyuri
12年前 に Viktor Bartuszek によって更新されました。

RE: LR 5.1.2 post login action / default landing page

New Member 投稿: 5 参加年月日: 11/01/18 最新の投稿
Szia Gyuri,

Köszönöm válaszod! Mint láthatod, én is a loginpostaction "hook"-al próbáltam a lastpath alapján ráerőszakolni a rendszerre a redirect-et, ehhez beállítottam azt is, hogy a redirect bylastpath true, de figyelmen kívül hagyja.
A sendredirect mint olyan bennem is felmerült, de bevallom őszintén nem debugoltam végig a rendszert, hogy esetlegesen a "hook" lefuttatása után nem álílt-e be - rendellenes működést elkerülendő - még további dolgokat a LR, mondjuk sütik, session értékek stb.

Átmenetileg most a sendredirect mellett döntöttem (gondolom nálatok nem jelentkeztek emiatt problémák), de azért jó lenne ha esetleg valaki tud valami (Liferay)standard megoldást erre, akkor az megírná, a jelek szerint nem csak nekem lenne hasznos infó, legalább ketten vagyunk már emoticon

Köszönöm mégegyszer a hozzászólásod,
üdv,
Viktor