实现方式:通过EXT环境定制,增加一个针对login的PostAction
第一步:在ext中创建以下java类:
package com.liferay.portal.events;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.liferay.portal.kernel.events.Action;
import com.liferay.portal.kernel.events.ActionException;
import com.liferay.portal.struts.LastPath;
import com.liferay.portal.util.WebKeys;
public class CustomLoginPostAction extends Action {
@Override
public void run(HttpServletRequest req, HttpServletResponse res)
throws ActionException {
try {
HttpSession ses = req.getSession();
// To manually set a path for the user to forward to, edit
// portal.properties and set auth.forward.by.last.path to true.
Map params = new HashMap();
//params.put("p_l_id", new String[] {"PRI.3.1"});
//params.put("p_l_id", new String[] {"PUB.1.1"});
LastPath lastPath = new LastPath("", "/group/cw/1", params);
ses.setAttribute(WebKeys.LAST_PATH, lastPath);
}
catch (Exception e) {
throw new ActionException(e);
}
}
}
以下这行代码指定跳转的目标url,此url可以根据自己的规则动态确定,例如根据用户所在组织,所在用户组……
LastPath lastPath = new LastPath("", "/group/cw/1", params);
第二步:
更改ext中的portal-ext.properties文件,增加以下两行:
auth.forward.by.last.path=true
login.events.post=com.liferay.portal.events.LoginPostAction,com.liferay.portal.events.CustomLoginPostAction
第三步:
ext环境中 ant deploy
分享到:
相关推荐
- 登录Liferay,如果配置正确,你应该能够跳转到CAS登录页面进行身份验证,之后无需再次登录就能访问其他受CAS保护的应用。 5. **安全性考虑**: - 为了保障系统安全,应定期更新证书和密码,避免使用默认值。 -...
2. Hook实例:假设需要在用户登录后自动跳转到特定页面,可以通过开发Login Hook来实现这一功能,覆盖默认的登录后逻辑。 3. Theme实例:设计一个响应式主题,调整CSS样式,使Liferay门户在不同设备上具有良好的显示...
`<liferay-ui:success>`标签用于展示成功的操作消息,通常在用户执行完一个操作后显示。 #### 2.6 Liferay-UI:Error `<liferay-ui:error>`标签用于显示错误信息,帮助用户识别和解决问题。 #### 2.7 Liferay-UI:...
- `<result>`:结果配置,指定了成功或失败后的跳转页面。 示例配置: ```xml <result name="success">/WEB-INF/jsp/newjsp/edit.jsp <!-- 可以添加更多的Action --> ``` 通过以上步骤,可以在Liferay...
- **定义页面流**:定义portlet的视图页面(JSP)和Action间的流程,比如用户提交投诉后跳转到确认页面。 - **定义页面布局**:根据设计,定义portlet在门户页面上的位置和布局,可以在Liferay控制台或者通过布局...
- **利用ServiceBuilder自动生成持久化层和服务层的类**:运行Ant任务后,ServiceBuilder会根据service.xml文件中的配置自动生成DAO接口和实现类、服务接口和实现类等。 ##### 3. 配置一个portlet - **定义...
### Liferay 使用笔记知识点梳理 #### 一、Liferay 基础操作 **1. 用户管理** - **增加用户**: 在 Liferay 中可以通过控制面板的“用户”部分增加新用户。通常需要填写用户的姓名、邮箱地址以及密码等基本信息。 ...
3. **测试和调试**:一旦配置完成,需要进行测试,确保用户能成功地通过 Google 账户登录到 Liferay,并且在两个平台之间可以顺畅地跳转。 这个插件的源代码位于 "liferay-google-apps-for-work-sso-master" 文件中...
这个自定义规则的创建,意味着管理员可以设定,当用户从特定网站或页面跳转到 Liferay 站点时,展示特定的内容或应用。 描述中提到的 "测试 Http referer 标头是否包含特定字符串" 是自定义规则的具体实现方式。...
单点登录(SSO)是一种安全的登录机制,允许用户在一次登录后就可以访问多个应用系统而无需再次登录。CAS通过中心认证服务实现这一功能。 **2.1.2 技术实现机制** CAS的核心技术机制包括: - **Ticket Granting ...
- **Portal Server定义**:Portal Server指的是一个Web-based系统,它提供了个性化设置、单点登录等功能,并能够整合来自不同源的信息,为用户提供一个统一的信息展示平台。 - **Portal页面结构**:每个Portlet可以...
在Portlet开发中,portlet与传统的Web应用有所不同,它运行在portlet容器中,如Liferay或WebSphere Portal。Portlet有自己的生命周期,包括初始化、渲染、事件处理等阶段。Struts2 Portlet插件则允许开发者使用...
开发者可以通过这个实例学习如何配置Struts2的核心文件,如web.xml和struts.xml,以及如何处理表单提交、页面跳转、异常处理等常见Web开发任务。 2. **struts2-portlet**:此实例展示了Struts2与portlet技术的集成...
- **拦截器**:可以定义一系列拦截器,对portlet的动作执行前后进行预处理和后处理,实现如事务管理、权限检查等通用功能。 - **结果处理**:不同的结果类型可以决定portlet如何响应用户操作,比如跳转到一个新的...