web.xml
<!-- For Security -->
<filter>
<filter-name>ActionFilter</filter-name>
<filter-class>com.fg.security.ActionFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>ActionFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>ActionFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
ActionFilter.java
/**
*
*/
package com.fg.security;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.fg.common.CommLogger;
import com.fg.common.Constant;
import com.fg.common.FgObject;
import com.fg.common.exception.ExceptionLogger;
import com.fg.urp.business.UserKeyService;
/**
* @author Agui
* @date 2005-7-22
*/
public class ActionFilter extends FgObject implements Filter {
public void init(FilterConfig config) {
//
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) {
String taskUiid=null;
String uiid=null;
try {
CommLogger.debug(getClass()," *** In ActionFilter *** ");
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse rep = (HttpServletResponse) response;
// Get user information
HttpSession session = req.getSession(true);
//从session中提取用户的session
UserKeyService user = (UserKeyService) session
.getAttribute(Constant.SESSION_USER);
CommLogger.debug(getClass()," URI: " + req.getRequestURI());
//如果不等于登陆页面
if(!req.getRequestURI().equals("/msp/login.do")){
//if(req.getQueryString()!=null) rep.sendRedirect(req.getContextPath()+"/error.jsp");
}
//user == null 或者 没有登陆
if (!(user!=null&&user.isLogin())) {
String uri = req.getRequestURI();
//如果不是登录页面
if (!uri.equalsIgnoreCase(req.getContextPath() + "/login.do")) {
CommLogger.debug(getClass()," Action Stop!");
rep.sendRedirect(req.getContextPath() + "/login.do");
} else {
chain.doFilter(request, response);
}
} else {
//user !=null and 登陆了
if(user==null) rep.sendRedirect(req.getContextPath() + "/login.do");
if(req.getParameter("Uiid")!=null) uiid=req.getParameter("Uiid");
if(req.getParameter("taskUiid")!=null) taskUiid=req.getParameter("taskUiid");
chain.doFilter(request, response);
}
CommLogger.debug(getClass()," *** Out ActionFilter *** ");
} catch (Exception e) {
ExceptionLogger.logErrorMsg(e,getClass(),null);
} catch (Throwable t) {
t.printStackTrace();
}
}
public void destroy() {
//
}
}
分享到:
相关推荐
给使用某些没有filter框架java系统接入cas单点登录样例,导入工程到eclipse即可运行,查看main servlet 调用CasValidate类与cas服务器进行交互验证获取登录帐号
第2章 J2EE数据库编程设计与实现 案例1:JSP+JavaBean实现数据库读取 案例2:JSP顺序输出查询结果 ...案例13:使用Servlet过滤器记录访问页面地址和页面执行时间 案例14:实现接受两种请求方式的Servlet 本章小结
过滤请求及响应 163 编写Filter 163 编写自定义的请求与响应 165 指定filter映射 166 调用其它网络资源 167 响应中包含其它资源 167 转移控制到其它网络组件 168 访问Web Context 168 维持客户端状态 169 访问一个...
实验十三 过滤器解决中文乱码及登录验证 32 一、实验目的 32 二、实验环境 32 三、实验步骤 32 1、创建web过滤器实现form表单post提交的中文乱码 32 2、配置中文乱码过滤器 32 3、创建登录验证的过滤器并配置 32 四...
核心模式( 拦截过滤器、前端控制器、服务定位器、 数据访问对象工厂策略等[ 1, 2] ) , 实现了各个层面 之间和业务层内部的松散耦合[ 3] , 使CWFBP 具 有较好的开放性和灵活性; 通过添加对AJAX 的 支持, 实现了CWFBP ...
一种J2EE下的基于URL的访问控制过滤器实现方式,仇华炳,龙毅宏,随着信息化程度的提高,各类Web业务系统也变得日益复杂,对业务系统的防护也变得越来越重要,因此确认用户身份、确保用户访问的合
四、 文件系统权限.21 五、软硬连接的区别..........................22 六、范例程序...........22 七、网络基本命令...26 八、Shell scripts:脚本编程.................28 Core Java学习笔记...........31 第一章 ...
1.1 系统架构统览 3 1.2 宠物店网上商店 3 1.2.1 宠物店走一遭 3 1.2.1.1 开始窗口 3 1.2.1.2 欢迎窗口 4 1.2.1.3 种类窗口(Category Screen) 4 1.2.1.4 货架/产品窗口 4 1.2.1.5 货物item窗口 4 1.2.1.6 购物车...
1.1 系统架构统览 3 1.2 宠物店网上商店 3 1.2.1 宠物店走一遭 3 1.2.1.1 开始窗口 3 1.2.1.2 欢迎窗口 4 1.2.1.3 种类窗口(Category Screen) 4 1.2.1.4 货架/产品窗口 4 1.2.1.5 货物item窗口 4 1.2.1.6 购物车...
整合功能卓越的《留言本》,界面美观、功能强大,支持留言审核、留言固顶、脏话过滤。 新增商品评论功能。 QQ在线咨询功能大大增强,可自由的打开或关闭在线咨询面板、可设置其显示位置、可显示中文昵称 、可设置...
对通用访问控制框架(GFAC)进行了研究,提出了一种基于J2EE的通用访问控制框架(JGFAC),并给出了其基于Java技术的实现。...通过对URL请求过滤有效控制了对系统资源的访问,并基于此实现了统一的授权管理。
此系统实现了地图分级显示功能模块、基本GIS功能模块、食品企业标注功能模块、食品企业定位查询和食品企业过滤显示五个功能模块。 摘 要……………………………………………………………………………………ii ...
2.3 J2EE概述 4 2.4关于Struts 5 2.4.1 Struts简介 5 2.4.2 Struts的主要功能 5 2.4.3 Struts工作原理 6 2.5 关于Spring 7 2.5.1 Spring简介 7 2.5.2 为什么需要Spring 8 2.5.3 Spring带给我们什么 8 2.6 关于B/S...
本项目是基于J2EE的Servlet的在线蛋糕店管理系统,本项目有三种权限:游客、用户、管理员。 游客:浏览查看商品、注册登录 用户:浏览查看商品、加入购物车、我的订单、结算订单 管理员:管理员管理、用户管理、商品...
在具体的项目中,在SSH 框架基础上,使用Spring 的IoC 容器存储对象,使用过滤器拦截控制访问,具体实现RBAC 模型,从而构建良好的权限管理系统,并取得很好的效果。 关键词: RBAC; SSH 框架; 权限管理; 过滤器
详细分析了J2EE架构下的基于标签的表示层、基于过滤器的控制层和基于AOP的业务逻辑层的权限拦截的原理与优势,并将这几种方法整合,设计并实现了1种多层次结合的权限拦截策略,可以有效地嵌入基于J2EE的各种应用系统,...
针对传统权限控制设计的问题,提出了一种基于J2EE的B/S系统的权限控制设计。它通过虚拟扩展数据库系统的外模式和虚拟实现数据库的用户授权模式,在数据库连接.IDBC与Web的应用服务之间增加数据过滤层,很好地解决了...
J2EE_MVC:最初接触J2EE时,写一个项目,二进制文件已经丢失,相关代码解释均在文档内。这是一个基于Selervlet,JSP,以及JavaBean。但没有用到监听器(Listener),过滤器(Filter),JSTL ,EL等技术,以及业务层,...
基于Servlet Filter的访问控制过滤器插件,汪克炎,龙毅宏,对于部署在互联网上的J2EE Web应用系统,用户的安全访问是至关重要的。本文介绍使用Servlet Filter技术设计一种可插入的、可扩展的、对��
1. 用户登录模块 :超级管理员、宿舍管理员、学生三种不同角色的用户登录系统,呈现不同的界面,添加过滤器,没登陆的则不能访问其它界面 2. 超级管理员模块 :超级管理员具有宿舍管理员管理、学生管理、宿舍楼管理...