【问题标题】:Liferay - customise change passwordLiferay - 自定义更改密码
【发布时间】:2012-01-09 16:21:37
【问题描述】:

我想自定义 Liferay 6.0.6 机制来更新密码。

在我们的项目中,我们决定自行管理用户,因此我们将用户名和密码等所有数据保存在数据库中。我们不想使用 Liferay 的数据库,但似乎 Liferay 正在为自己维护它并且无论如何都要使用它。结果我们在两个地方都有用户密码,我们必须注意数据同步。

自定义身份验证机制很容易 - 在 portal-ext.property 中使用 auth.pipeline。

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

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

任何帮助将不胜感激。 提前致谢。

【问题讨论】:

    标签: liferay


    【解决方案1】:

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

    【讨论】:

    • 我应该在protected Object[] updateUser方法中返回什么?
    • 嗨,如果您检查 com.liferay.portlet.usersadmin.action.EditUserAction 的受保护 Object[] updateUser() 方法。它返回 return new Object[] {user, oldScreenName, oldLanguageId};
    【解决方案2】:

    如果您只需要通过用户 id 更改密码,请查看there - 通过用户 ID 更改密码(设置新通行证、确认和密码重置布尔值)

    (updaterUser 对我不起作用)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-09
      • 2021-04-18
      • 1970-01-01
      相关资源
      最近更新 更多