Liferay登录如何运作?

时间:2013-07-22 12:09:38

标签: java session login liferay

正如用户杰克想要在this帖子中做的那样,我需要做一个使用登录通过令牌认证的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。

1 个答案:

答案 0 :(得分:1)

很抱歉,但我的意见是,更好更简单的方法是使用AutoLogin funktion创建一个新的钩子:How do I use autologin in liferay?

ps:然后你升级稳定。