3

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


Liferay portal我的要求是当用户通过→ My AccountPassword→更改密码时Save,它应该在我的 LDAP 服务器中自动更新。

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

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

4

2 回答 2

3

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

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

  1. 使用Wrapper 钩子*UserServiceWrapper在您的类的updateUser方法中编写您的自定义代码。
  2. 或者使用模型监听器钩子。创建一个UserListener并使用该方法onAfterUpdate和/或onAfterCreate编写您的自定义代码。

您是否也考虑过使用Portal SettingsLDAP 导出选项?
Portal SettingsAuthenticationLDAPImport / ExportLiferay 用户指南中的更多信息

于 2013-06-05T10:44:18.170 回答
2

../deploy/ROOT.war/html/portal文件夹update_password.jsp中负责呈现 UI。

如果您检查此 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);
  ..
  }
于 2013-06-05T10:35:48.730 回答