正如用户 jack 在这篇文章中想要做的那样,我需要做一个通过令牌身份验证使用登录的 portlet。
如那里所述,portal-impl.jar
我无法使用,因此无法LoginUtil.login
访问。
此外,向现有添加功能ext plugin
几乎是不可能的,因为他很想“密集”,而创建另一个是一种不好的做法。所以我选择
根据login()
. LoginUtil
它基本上是相同的代码,但所需portal-impl.jar
的属性存储在本地(升级到更新的 Liferay 版本是不可能的,所以我认为可以这样做)。
一切似乎都很好,但是我没有登录,并且在 Tomcat 中没有错误出现。
现在,我的问题是我无法意识到是哪一段代码实际登录了用户。
我认为是这个
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 = default@liferay.com
,所以登录不成功。
用户在该代码中登录的位置在哪里?!
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。