在Liferay Portal上更改密码脚本

时间:2013-06-05 09:16:51

标签: passwords liferay

我使用Liferay Portal创建了一个仪表板,我还有一个单独的用户管理服务器(OpenLDAP)。

我的要求是用户通过
更改密码 Liferay portalMy AccountPasswordSave,它应自动在我的LDAP服务器中进行更新。

为此,我必须在Liferay门户的密码脚本中加入一些更改。

我在哪里可以找到密码脚本?或者说,当用户更改密码并单击“保存”时,将调用哪个脚本。

2 个答案:

答案 0 :(得分:3)

您可以使用挂钩更新密码。因为liferay最终会通过UserServiceImplUserLocalServiceImpl中的方法将密码存储在数据库中,数据库表User_将更新,由模型User表示

所以可以使用以下任何一种方法:

  1. 使用Wrapper hook。在*UserServiceWrapper班级updateUser方法中编写自定义代码。
  2. 或使用Model Listener hook。创建UserListener并使用方法onAfterUpdate和/或onAfterCreate编写自定义代码。
  3. 您是否还考虑过使用Portal Settings LDAP导出选项?
    Portal SettingsAuthenticationLDAPImport / ExportLiferay User-guide

    中的更多信息

答案 1 :(得分:2)

../deploy/ROOT.war/html/portal文件夹中有update_password.jsp,负责展示用户界面。

如果您检查此JSP页面,则调用的操作是/portal/update_password

如果您检查struts-config.xml文件夹中的../deploy/ROOT.war/WEB-INF文件,您将获得相应的调用操作。以下是代码,

<action path="/portal/update_password" type="com.liferay.portal.action.UpdatePasswordAction">
   <forward name="portal.update_password" path="portal.update_password" />
</action>

如果您检查UpdatePasswordAction包中的班级com.liferay.portal.action,则更改用户密码的相关代码如下:

protected void updatePassword(HttpServletRequest request, HttpServletResponse response, ThemeDisplay themeDisplay, Ticket ticket)
    throws Exception
  {
   ....
   UserLocalServiceUtil.updatePassword(
      userId, password1, password2, passwordReset);
  ..
  }