2012-01-09 73 views
7

我想定制Liferay 6.0.6 mechanizm更新密码。Liferay - 自定义更改密码

在我们的项目中,我们决定自行管理用户,因此我们在数据库中保存所有数据,如用户名和密码。我们不想使用Liferay的数据库,但Liferay似乎是维护它自己并使用它。结果我们在两个地方有用户密码,我们必须关心数据同步。

自定义身份验证mechanizm很简单 - 通过portal-ext.property中的auth.pipeline。

现在我想调用我的自定义方法,当用户通过MyAccount portlet更改密码时。我需要捕获用户在Portlet中键入的当前密码和新密码。

我没有看到更新密码事件的任何门户网站属性。 我试着写一个自定义UserLocalService的钩子插件,但目前为止没有成功。有没有可能用钩子做到这一点?

任何帮助,将不胜感激。 在此先感谢。

回答

3

我发现我正在寻找的动作是com.liferay.portlet.myaccount.action.EditUserAction,并且作为一个struts动作,它可以使用ext插件进行定制(因为Liferay 6.1甚至使用钩子插件)。 Liferay-plugins-sdk可用于创建可部署的插件,但您也可以直接在liferay上编辑配置文件(本例中为struts-config-ext.xml)。希望这可能对你们中的一些人有用。

+0

我应该在'protected Object [] updateUser'方法中返回什么? – Queequeg 2012-04-23 07:25:54

+0

嗨,如果您检查com.liferay.portlet.usersadmin.action.EditUserAction的受保护的Object [] updateUser()方法。它返回返回新的对象[] {用户,oldScreenName,oldLanguageId}; – 2012-06-04 08:48:01

+0

它帮助了我,超过了很多 – yannicuLar 2013-04-09 12:58:41

0

如果你只需要通过用户ID更改密码,看看there - 通过用户ID(设置新传,确认和密码重置布尔)

(updaterUser没有工作对我来说)

更改密码