我已经使用 Liferay Portal 创建了一个仪表板,并且我还有一个单独的用户管理服务器 (OpenLDAP)。
Liferay portal我的要求是当用户通过→ My Account→ Password→更改密码时Save,它应该在我的 LDAP 服务器中自动更新。
为此,我必须在 Liferay 门户的密码脚本中加入一些更改。
我在哪里可以找到密码脚本?或者说,当用户更改密码并单击保存时调用哪个脚本。
您可以使用挂钩来更新密码。因为最终 liferay 将通过 in 的方法将密码存储在数据库中UserServiceImpl,UserLocalServiceImpl并且数据库表User_将被更新,由模型表示User。
因此可以使用以下任何一种方法:
*UserServiceWrapper在您的类的updateUser方法中编写您的自定义代码。UserListener并使用该方法onAfterUpdate和/或onAfterCreate编写您的自定义代码。您是否也考虑过使用Portal SettingsLDAP 导出选项?
Portal Settings→ Authentication→ LDAP→ Import / Export,Liferay 用户指南中的更多信息
在../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);
..
}