0

我是 Liferay 的新手,我正在创建一个钩子来使用 expando 列而不是电子邮件地址进行身份验证。我的身份验证类工作正常,但仍然存在一个问题:

成功验证后,我必须将页面重定向到用户的公共或私人页面(任何这些对我来说都足够了)我在互联网上的任何论坛上遵循了常见的说明:

  1. 创建一个扩展 com.liferay.portal.kernel.events.Action 的类并在那里执行逻辑。就我而言,我的课程名为 CustomPostLoginAction
  2. 修改 portal.properties 添加条目

    login.events.post=com.liferay.sample.hook.action.CustomPostLoginAction auth.forward.by.last.path=true
    default.landing.page.path=/web/guest/home

  3. 重新部署并“瞧”

当我重新启动我的网络服务器时,一切都很好,但是当我使用任何浏览器运行我的钩子时,一旦我成功通过身份验证,它仍然会向我显示默认的登录错误消息。当我检查我的控制台时,我发现我的操作类从未被调用,并且在我的身份验证类之后没有执行任何特殊操作。所以我有以下问题:

  • 如果需要,我在哪里可以找到一个类示例以用作属性“auth.pipeline.post”的值?

  • authenticateByEmailAddress在我的身份验证类的方法上,最后一个参数是一个java.util.Map包含参数,如“doActionAfterLogin”、“redirect”、“structsAction”等。如果我为该地图上的这些键分配值,我会得到什么吗?如果是,我在哪里可以找到分配给每个人的有效值的示例?

  • 我是否必须更改自定义登录页面中的某些内容?(它有效,但我仍然要问这个)

  • 有必要和班级一起工作DefaultLandingPageAction吗?如果是,我该怎么做?因为我只有门户的字节码(.class)

  • 最重要的是:我做错了什么?

作为记录:

我正在使用 Liferay 6.1 捆绑包和 Tomcat 7 以及 Liferay 默认数据库中包含的 SDK。如果你们中的任何人需要观看我的任何源代码和/或属性文件,请告诉我,我会发布它们。

在此先感谢大家。

4

1 回答 1

0

我无法对您的原始帖子添加评论,因此我将不得不发布一个答案以询问您一些其他信息(将相应地更新我的答案)。

你是portal.properties直接修改还是portal.properties在你的钩子里创建了一个新的?

扩展com.liferay.portal.kernel.events.Action后,您是否覆盖了该run方法?

于 2013-11-25T20:54:55.303 回答