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