0

正如用户 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。

4

1 回答 1

1

抱歉,但我认为,更好和最简单的方法是使用 AutoLogin 功能创建一个新钩子:如何在 liferay 中使用自动登录?

ps:然后你升级稳定。

于 2013-07-23T04:59:28.027 回答