正如用戶插孔想要在this後,我需要做一個使用登錄通過令牌認證的portlet。
如上所述,portal-impl.jar
無法供我使用,因此LoginUtil.login
無法訪問。
此外,添加功能到現有的ext plugin
幾乎是不可能的,因爲他是在等待「密集」,而創建另一個是一個不好的做法。
所以我選擇了基於LoginUtil
中的login()
邏輯創建我自己的登錄功能。它基本上是相同的代碼,但所需的portal-impl.jar
的屬性存儲在本地(升級到更新的Liferay版本是不可能的,所以我認爲可以這樣做)。
一切似乎工作正常,但我沒有登錄,沒有在Tomcat中的錯誤顯示。現在Liferay登錄如何工作?
,我的問題是,我不知道哪塊代碼的實際登錄用戶
我想這是這個
session.setAttribute("j_username", userIdString);
session.setAttribute("j_password", user.getPassword());
session.setAttribute("j_remoteuser", userIdString);
session.setAttribute(WebKeys.USER_PASSWORD, password);
PS:我的自定義登錄方法後(我重複,它具有相同的代碼LoginUtil的登錄方法),如果我把下面的代碼:
ThemeDisplay td = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY);
User uu = td.getUser();
System.out.println("user = " + uu.getEmailAddress());
它將輸出user = [email protected]
,所以登錄失敗。
用戶在那個代碼中登錄?!
PPS:我portal-ext.properties ,這裏有以下加載項:
auth.pipeline.enable.liferay.check=false
session.enable.persistent.cookies=true
session.enable.phishing.protection=false
session.disabled=false
session.test.cookie.support=true
我的Liferay版本5.2.3是。