import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.util.List;
import java.util.ArrayList;
import java.util.StringTokenizer;
import java.io.IOException;
/**
* 用于检测用户是否登陆的过滤器,如果未登录,则重定向到指的登录页面
* <p>
* 配置参数
* <p>
* checkSessionKey 需检查的在 Session 中保存的关键字<br/> redirectURL
* 如果用户未登录,则重定向到指定的页面,URL不包括 ContextPath<br/> notCheckURLList
* 不做检查的URL列表,以分号分开,并且 URL 中不包括 ContextPath<br/>
*/
public class RequestDumperFilter implements Filter {
protected FilterConfig filterConfig = null;
private String redirectURL = null;
private List notCheckURLList = new ArrayList();
private String sessionKey = null;
public void doFilter(ServletRequest servletRequest,
ServletResponse servletResponse, FilterChain filterChain)
throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) servletRequest;
HttpServletResponse response = (HttpServletResponse) servletResponse;
HttpSession session = request.getSession();
if (sessionKey == null) {
filterChain.doFilter(request, response);
return;
}
if ((!checkRequestURIIntNotFilterList(request))
&& session.getAttribute(sessionKey) == null) {
response.sendRedirect(request.getContextPath() + redirectURL);
return;
}
filterChain.doFilter(servletRequest, servletResponse);
}
public void destroy() {
notCheckURLList.clear();
}
private boolean checkRequestURIIntNotFilterList(HttpServletRequest request) {
String uri = request.getServletPath()
+ (request.getPathInfo() == null ? "" : request.getPathInfo());
for(int i=0;i<notCheckURLList.size();i++){
if(uri.equalsIgnoreCase((String)notCheckURLList.get(i)))
return true;
}
return false;
}
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
redirectURL = filterConfig.getInitParameter("redirectURL");
sessionKey = filterConfig.getInitParameter("checkSessionKey");
String notCheckURLListStr = filterConfig
.getInitParameter("notCheckURLList");
if (notCheckURLListStr != null) {
StringTokenizer st = new StringTokenizer(notCheckURLListStr, ";");
notCheckURLList.clear();
while (st.hasMoreTokens()) {
notCheckURLList.add(st.nextToken());
}
}
}
}
分享到:
相关推荐
使浏览器不缓存页面的过滤器 用于的使 Browser 不缓存页面的过滤器 检测用户是否登陆的过滤器 用于检测用户是否登陆的过滤器,如果未登录,则重定向到指的登录页面
纸飞机DiscuZ专用采集器用于文章采集、分页采集、采集内容过滤超链接、自动下载帖内图片、内容关键字过滤替换、内容尾部自定义添加内容等。 纸飞机DiscuZ专用采集器应用平台:纸飞机DiscuZ专用采集器可以运行于...
1、调整登陆器读取客户端补丁模式:Prguse.pak为盛大模式调用,Prguse_.pak为剑侠模式调用 2、扩展 CHECKITEMADDVALUE 装备位置(0..15) 附加属性(0..28) (>,<,=,?) 数量 装备位置加入 -1 参数, 意为装备合成中间位置...
如果是全新使用本论坛那么请新建一个论坛管理员(先注册一个用户,以原管理员身份登陆后将该用户添加为管理员),然后以新的管理员身份登陆,删除默认的管理员admin,然后删除掉admin这个用户。 3。管理员密码...
RFC1558 LDAP研究过滤器的字符串表达 RFC1571 Telnet环境选项互用性问题 RFC1590 媒体类型注册过程 RFC1591 域名系统的结构和授权 RFC1597 私有Internet的地址分配 RFC1605 SONET to Sonnet翻译 RFC1606 用IP版本9的...
RFC1558 LDAP研究过滤器的字符串表达 RFC1571 Telnet环境选项互用性问题 RFC1590 媒体类型注册过程 RFC1591 域名系统的结构和授权 RFC1597 私有Internet的地址分配 RFC1605 SONET to Sonnet翻译 RFC1606 用IP版本9的...
at ip time 程序名(或一个命令) /r 在某时间运行对方某程序并重新启动计算机 finger username @host 查看最近有哪些用户登陆 telnet ip 端口 远和登陆服务器,默认端口为23 open ip 连接到IP(属telnet登陆后的...
登陆后首页显示用户资料以及相关连接。 110.论坛搜索功能 111.后台设置论坛关键字功能,让网站有更多机会被搜索引擎索引。 112.版面类型图标显示 113.后台登陆页面防暴力破解,限制出错次数。 ...
- 标签关闭提示:检测是否有未保存文件,文件修改实时修改是否修修改的按钮状态 ####fix bug:(bug解决和程序优化) - 文本文件编辑 文件名含有url编码则出错bug - 右键菜单在最下面时,右键位置重叠导致点击...
RFC1558_LDAP研究过滤器的字符串表达 RFC1571_Telnet环境选项互用性问题 RFC1590_媒体类型注册过程 RFC1591_域名系统的结构和授权 RFC1597_私有Internet的地址分配 RFC1605_SONET to Sonnet翻译 RFC1606_用IP版本9的...
*世界各地都在使用的优秀的、经证明有效的解决方案:用户超过365万、全球部署BlackBerry的企业及政府组织超过45,000、可用于50多个国家/地区的超过100个网络完整的无线企业解决方案BlackBerry提供了一个完全集成的...
另外下载栏目的软件缩略图,是需要AspJpeg组件支持的,QuickWAP内嵌的自动缩略图功能会自动检测是否已经创建了缩略图,如果创建了,则不会重新生成图片,节省了服务器资源。当然如果没有AspJpeg支持,那也不会发生...
8、登陆后台增加检测配置文件是否只读。 9、修复有时搜索长文字出不了结果的错误。 V4.1更新内容: 1、后台增加屏蔽设置模块,可设置词语屏蔽,类别ID屏蔽和产品ID屏蔽。该屏蔽模块对全站所有API商品有效。 2、修复...
用JAVA编写了一个小工具,用于检测当前显示器也就是显卡的显示模式,比如分辨率,色彩以及刷新频率等。 Java波浪文字制作方法及源代码 1个目标文件 摘要:Java源码,初学实例,波浪文字 Java波浪文字,一个利用...
用JAVA编写了一个小工具,用于检测当前显示器也就是显卡的显示模式,比如分辨率,色彩以及刷新频率等。 Java波浪文字制作方法及源代码 1个目标文件 摘要:Java源码,初学实例,波浪文字 Java波浪文字,一个利用...
内核过滤类新增加date,datetime,time数据类型的检测 将后台登陆地址从systemadmin改为admin 优化了分页功能,让移动端的分页与电脑端呈现不同的样式 升级快钱PC网关支付接口 修正部分 修复用户密码有特殊字符会被...
10.独有的广告代码编辑器,可在线编辑完成直投广告。 11.广告策略可分类、分组管理,再多也能轻松管理。 12.可按照cookie、时间、操作系统、分辨率、浏览器、语言、被访url、来源、地域等多维条件投放广告。 13....