我是 Liferay 的新手,我正在创建一个钩子来使用 expando 列而不是电子邮件地址进行身份验证。我的身份验证类工作正常,但仍然存在一个问题:
成功验证后,我必须将页面重定向到用户的公共或私人页面(任何这些对我来说都足够了)我在互联网上的任何论坛上遵循了常见的说明:
- 创建一个扩展 com.liferay.portal.kernel.events.Action 的类并在那里执行逻辑。就我而言,我的课程名为 CustomPostLoginAction
修改 portal.properties 添加条目
login.events.post=com.liferay.sample.hook.action.CustomPostLoginAction
auth.forward.by.last.path=true
default.landing.page.path=/web/guest/home
重新部署并“瞧”
当我重新启动我的网络服务器时,一切都很好,但是当我使用任何浏览器运行我的钩子时,一旦我成功通过身份验证,它仍然会向我显示默认的登录错误消息。当我检查我的控制台时,我发现我的操作类从未被调用,并且在我的身份验证类之后没有执行任何特殊操作。所以我有以下问题:
如果需要,我在哪里可以找到一个类示例以用作属性“auth.pipeline.post”的值?
authenticateByEmailAddress
在我的身份验证类的方法上,最后一个参数是一个java.util.Map
包含参数,如“doActionAfterLogin”、“redirect”、“structsAction”等。如果我为该地图上的这些键分配值,我会得到什么吗?如果是,我在哪里可以找到分配给每个人的有效值的示例?我是否必须更改自定义登录页面中的某些内容?(它有效,但我仍然要问这个)
有必要和班级一起工作
DefaultLandingPageAction
吗?如果是,我该怎么做?因为我只有门户的字节码(.class)最重要的是:我做错了什么?
作为记录:
我正在使用 Liferay 6.1 捆绑包和 Tomcat 7 以及 Liferay 默认数据库中包含的 SDK。如果你们中的任何人需要观看我的任何源代码和/或属性文件,请告诉我,我会发布它们。
在此先感谢大家。