【发布时间】:2013-02-25 05:17:23
【问题描述】:
我使用的是 Liferay 6.1 版本。
一旦用户输入 http:localhost ,我将显示名为“/ravi”的网页,其中包含我的自定义门户,如图所示
我已经在portal-ext.properties下配置了这个属性,如图所示
auth.forward.by.last.path=true
default.landing.page.path=/web/guest/ravi
请查看当用户输入 http:localhost 时显示的我的自定义 Portlet 的屏幕截图
现在我的要求是,如果他输入有效的 crendentails,我需要显示另一个页面(“/web/guest/test”)。
在我的 processAction 类中,我正在这样做
public class ValidateUser extends MVCPortlet {
public void processAction(ActionRequest request, ActionResponse response) {
String userName = (String) request.getParameter("userName");
String password = (String) request.getParameter("password");
try {
// Contatcs DB and validates the credentials here
// Please let me know how can i show the Configured Page if his credentials are valid ??
}
catch (Exception e) {
}
}
}
编辑部分
非常感谢您对默认 login.events.post 的回答。
我是 Liferay 的新手,所以我可能在这里做错了,所以如果我做错了什么,请帮助我。
我按照以下步骤操作:
- 创建了一个名为“MyLogon”的新 Portlet,并在其 view.jsp 中创建了一个包含两个文本字段(登录和密码)和一个提交按钮的表单。 单击该提交按钮时,我实际上是在调用我的 processAction 方法并进行数据库调用以验证来自 mysql db 的用户。
2. 然后我在 /web/guest/ravi 中创建了一个页面,并将这个“MyLogon”Portlet 添加到这个新页面 /web/guest/ravi
-
然后在
portal-ext.properties下配置这个属性auth.forward.by.last.path=true default.landing.page.path=/web/guest/ravi
这就是我所做的。
并且当输入http:localhost:8080时,它显示了taht页面。
如果我做错了什么请告诉我
编辑第二部分
我已经理解了你的部分答案,我有这些问题。 你能帮忙吗
我需要根据我的数据库中存在的数据来验证用户,因此我需要执行以下操作。
-
我需要创建一个 Hook 来覆盖这个属性
login.events.pre=com.LoginAction
公共类 LoginAction 扩展 Action {
public void run(HttpServletRequest req, HttpServletResponse res) {// 这里我需要调用数据库来验证用户凭据,然后将他重定向到我想要的页面??
}}
【问题讨论】:
标签: liferay-6