首页 技术 正文
技术 2022年11月6日
0 收藏 869 点赞 589 浏览 2530 个字
public class LoginedFilter implements Filter {   /**
* 排除的地址
*/
private Map<String, Boolean> ignore;
/**
* 排除的后缀
*/
private Map<String, Boolean> ignoreExt; /**
* <b>功能描述:</b>实现接口,登录验证<br>
* <b>修订记录:</b><br> */
@Override
public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException,
ServletException {
HttpServletRequest request = (HttpServletRequest)arg0;
HttpServletResponse response = (HttpServletResponse) arg1; String a = request.getRequestURI(); String ss = request.getRequestURI().replaceFirst(request.getContextPath(), ""); String address = request.getRequestURI().replaceFirst(request.getContextPath(), "").substring(1); String ext = "";
if(address.lastIndexOf(".") > 0) {
ext = address.substring(address.lastIndexOf(".") + 1);
}
if(address.indexOf("/") != -1) {
address = address.substring(address.indexOf("/") + 1, address.length());
} if(null == this.ignore.get(address) && null == this.ignoreExt.get(ext)) {
HttpSession session = request.getSession();
// 如果session为空,则跳转到登录页面。
// if(null == session.getAttribute("user") || session.isNew()) {
response.sendRedirect(request.getContextPath()+"/index");
return ;
//}
}
arg2.doFilter(arg0, arg1); } @Override
public void init(FilterConfig config) throws ServletException {
// 初始化排除列表
if(null == this.ignore) {
this.ignore = new HashMap<String, Boolean>();
}
if(null == this.ignoreExt) {
this.ignoreExt = new HashMap<String, Boolean>();
}
// 读取web.xml中的配置列表,装入Map对象,排除内容为Key,Value为true。
String ignoreConfig = config.getInitParameter("ignore");
String[] ignoreConfigArray = ignoreConfig.split(",");
for(String string : ignoreConfigArray) {
this.ignore.put(string.trim(), true);
}
String ignoreExtConfig = config.getInitParameter("ignoreExt");
String[] ignoreExtConfigArray = ignoreExtConfig.split(",");
for(String string : ignoreExtConfigArray) {
this.ignoreExt.put(string.trim(), true);
}
} @Override
public void destroy() {
// 销毁时清除排除列表
this.ignore.clear();
this.ignore = null;
this.ignoreExt.clear();
this.ignoreExt = null;
}//下面是web.xml 配置
<filter>
<filter-name>urlfilter</filter-name>
<filter-class>com.payease.chains.order.common.Filter.LoginedFilter</filter-class>
<init-param>
<description>排除过滤的前缀</description>
<param-name>ignore</param-name>
<param-value>index,chains,main,fund,order,fundDetail,orderList,logout,OmsUpload,merchant,upload,main1,main2</param-value>
</init-param>
<init-param>
<description>排除过滤的后缀</description>
<param-name>ignoreExt</param-name>
<param-value>js,css,jpg,gif,png,bmp,jpeg,ico</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>urlfilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>urlfilter</filter-name>
<url-pattern>/**</url-pattern>
</filter-mapping>

    					
上一篇: FTP\\SFTP连接命令
下一篇: CDC类介绍
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,088
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,565
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,413
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,186
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,822
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,905