判断是否登录的拦截器CheckLoginFilter
来源:互联网 发布:python telnet expect 编辑:程序博客网 时间:2024/06/05 18:11
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;/** * 用于检测用户是否登陆的过滤器,如果未登录,则重定向到指的登录页面 * 配置参数 * checkSessionKey 需检查的在 Session 中保存的关键字 * redirectURL 如果用户未登录,则重定向到指定的页面,URL不包括 ContextPath * notCheckURLList 不做检查的URL列表,以分号分开,并且 URL 中不包括 ContextPath */public class CheckLoginFilter 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());return notCheckURLList.contains(uri);}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());}}}}
0 0
- 判断是否登录的拦截器CheckLoginFilter
- 判断是否登录的拦截器CheckLoginFilter
- 判断是否登录的拦截器SessionFilter
- 拦截器登录判断
- vue 请求拦截,判断是否登录
- spring 拦截器过滤登录url 不验证是否登录其他的都拦截验证是否登录才能访问url
- 用Struts2的拦截器验证用户是否登录
- Struts开发一个权限验证拦截器来判断用户是否登录
- springmvc拦截器实现对用户登录状态的判断
- struts2 拦截器验证是否登录
- 拦截器验证用户是否登录
- Struts拦截器判断用户是否登陆
- 判断用户是否登录的模拟
- Struts2 拦截是否登录过
- 登录拦截器的实现
- Django 的登录拦截器
- 拦截器实现对用户是否登录及登陆超时的验证
- struts2用户是否登录拦截器,拦截之后异步跳转到登录页面
- Android系统中自带的图标&一些预定义样式&参考颜色值
- Java 线程池执行原理分析
- 判断是否登录的拦截器SessionFilter
- 超简单的画线程序
- adb显示unity运行的log
- 判断是否登录的拦截器CheckLoginFilter
- velocity使用中出现org.apache.velocity.exception.ResourceNotFoundException的解决办法
- 如何获知Android的版本号
- python pandas.DataFrame选取、修改数据最好用.loc,.iloc,.ix
- 使用Spring计时器和velocity模板定时生成静态html/jsp文件
- 详解Pattern类和Matcher类
- 通过URL建立连接 然后解析json
- 使用dom4j的xPath解析XML
- 校验码知识