在Liferays登录钩子

时间:2016-07-28 12:48:58

标签: jsp liferay liferay-6

用例:

  • 现有的Liferay用户忘记了密码。
  • 他点击链接"忘记密码" (登录挂钩)。
  • 用户输入登录名,这是他的屏幕名称
  • 现在我的问题:如果用户输入了某个登录名(我是 用正则表达式识别并点击按钮"发送新密码"我想要 防止此按钮的默认操作并显示信息短信 相反(例如,我们无法向您发送新密码......)

说实话,我现在不知道如何处理这个......

  1. 也许创建一个Ext插件并覆盖ForgotPasswordAction类?
  2. 是否可以在forgot_password.jsp中完成所有操作?
  3. 我可以不写插件吗?
  4. 希望有人可以帮助我。感谢

1 个答案:

答案 0 :(得分:1)

如果没有插件,你就不能这样做。

  1. 最简单的方法是,如果你的密码检查是在javascript中完成的,或者是使用ajax控件使用jsp Hook并将此代码放在forgot_password.jsp
  2. 2。  第二种方法是创建一个struts动作钩子,你可以覆盖更新密码表单的默认动作/login/forgot_password。为此你在liferay-hook.xml中添加:

    <struts-action>
        <struts-action-path>/login/forgot_password</struts-action-path>
        <struts-action-impl>com.myproject.hook.NewPasswordPortletAction</struts-action-impl>
    </struts-action>
    

    将这个新类添加到项目中

    public void processAction(
                StrutsPortletAction originalStrutsPortletAction,
                PortletConfig portletConfig, ActionRequest actionRequest,
                ActionResponse actionResponse)
            throws Exception {
           //Custom code to handle password
    
            //and than call original action handler if the password entered should be saved
            originalStrutsPortletAction.processAction(
                originalStrutsPortletAction, portletConfig, actionRequest,
                actionResponse);
        }
    

    至于Ext,你应该尽量不要使用它,因为这可以通过钩子来完成。