フォーラム

ホーム » Liferay Portal » magyarul

構造的に表示 平面上に表示 ツリー上に表示
スレッド [ 前へ | 次へ ]
toggle
Viktor Bartuszek
LR 5.1.2 post login action / default landing page
2011/09/06 9:15
答え

Viktor Bartuszek

ランク: New Member

投稿: 5

参加年月日: 2011/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
1default.landing.page.path=/web/guest/wall
2auth.forward.by.last.path=true
3login.events.post=com.liferay.portal.events.DefaultLandingPageAction,com.liferay.portal.events.CustomLoginPostAction


CustomLoginPostAction
 1public class CustomLoginPostAction extends Action {
 2
 3    private static Log _log = LogFactoryUtil.getLog(CustomLoginPostAction.class);
 4
 5    public void run(HttpServletRequest req, HttpServletResponse res) throws ActionException {
 6        try {
 7
 8            HttpSession ses = req.getSession();
 9            Map params = new HashMap();
10
11            User loginUser =
12                    UserLocalServiceUtil.getUser(com.liferay.portal.util.PortalUtil.getUserId(req));
13
14            LastPath lastPath = null;
15
16            if (loginUser == null) {
17                lastPath = new LastPath("/c", "/portal/layout", params);
18            } else {
19                lastPath = new LastPath("", "/web/guest/wall", params);
20            }
21
22            ses.setAttribute(WebKeys.LAST_PATH, lastPath);
23        } catch (Exception e) {
24            throw new ActionException(e);
25        }
26    }
27}


Milyen alternatíva jöhet még szóba?
György Rácz
RE: LR 5.1.2 post login action / default landing page
2011/09/07 0:52
答え

György Rácz

ランク: Junior Member

投稿: 62

参加年月日: 2010/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:

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


A CustomLoginPostAction.java:

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


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

Üdv,
Gyuri
Viktor Bartuszek
RE: LR 5.1.2 post login action / default landing page
2011/09/07 2:03
答え

Viktor Bartuszek

ランク: New Member

投稿: 5

参加年月日: 2011/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