`
ilrxx
  • 浏览: 64858 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

检测用户是否登陆的过滤器

阅读更多

Java code

<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> 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()); } } } }
分享到:
评论

相关推荐

    java 过滤器(附代码)

    这个过滤器的作用是检测用户是否已登陆,如果用户未登陆,将其重定向到登陆页面。实现这个过滤器的关键是使用HttpSession对象来存储用户的登陆信息。 在这个过滤器中,我们使用了Java Servlet API来实现filter接口...

    过滤器进行登录操作

    2. **身份验证**:在用户尝试访问受保护的页面时,过滤器可以检查请求中是否携带了有效的登录信息,例如session中的用户对象。如果没有,过滤器可以重定向到登录页面,或者返回403 Forbidden状态码。 3. **会话管理...

    jsp+servlet登录验证过滤器

    如果过滤器检测到当前请求没有有效的session,那么可以判断用户未登录。 9. **安全考虑**:在实际应用中,需要考虑安全性问题,例如使用加密存储密码、防止SQL注入、XSS攻击等。 10. **最佳实践**:为了保持代码的...

    java中五种常用的过滤器

    二、检测用户是否登陆的过滤器 `CheckLoginFilter`用于验证用户是否已经登录。如果用户未登录,它会将请求重定向到登录页面。这个过滤器可以配置多个参数,如检查的session关键字、重定向URL以及不需要检查的URL列表...

    用过滤器验证登陆框架,简单实例

    标题中的“用过滤器验证登陆框架,简单实例”指的是在Web开发中,使用过滤器(Filter)技术来实现用户登录验证的一种常见方法。过滤器是Servlet技术的一部分,它允许我们在请求到达目标资源(如Servlet、JSP页面)...

    5个Servlet过滤器实例源码(JSP)

    Servlet过滤器大全,各种详细使用的代码! 一、字符编码的过滤器 二、使浏览器不缓存页面的过滤器 三、检测用户是否登陆的过滤器 四、资源保护过滤器 五 利用Filter限制用户浏览权限

    struts过滤器

    二、检测用户是否登陆的过滤器 `CheckLoginFilter`是一个用于验证用户是否已登录的过滤器。如果用户未登录,它将重定向到登录页面。该过滤器可以通过配置参数来定制,如`checkSessionKey`(检查的会话关键字)、`...

    四个有用的缓存,登陆字符编码,资源保护_过虑器

    用户登录检测过滤器用于检查用户是否已经登录,通常在用户尝试访问需要权限的页面时使用。过滤器会在每个请求之前检查请求的会话(Session)或者Cookie中是否存在有效的用户信息。如果用户未登录或会话超时,过滤器...

    WPE过登陆器辅助工具

    总的来说,WPE过登陆器辅助工具虽然能为用户带来便利,但其使用应遵循合法、合规的原则,以免造成不必要的麻烦。对于有兴趣深入了解网络通信和游戏辅助的用户,学习并恰当使用WPE可以是一次宝贵的技术实践经历。

    自己制作登陆器(源码)

    在IT领域,登陆器通常是用于应用程序或网站的客户端组件,它负责用户的身份验证,确保只有合法的用户可以访问特定资源。本主题涉及的是如何自制登陆器的源码,允许你自定义账号和密码,以实现安全的用户登录功能。 ...

    java_web 用户只能在一处登陆源码

    之后,每次请求时,客户端都会携带这个Session ID,服务器根据ID找到对应的Session,判断用户是否已登录。 2. **会话劫持与Session失效**: 为了防止用户在多处登录,需要检测并处理Session的会话劫持。一旦检测到...

    jsp+servlet的登陆注册

    本项目聚焦于“jsp+servlet的登陆注册”功能,涉及了用户登录、注册、页面自动跳转、登录登出计数、IP封禁以及过滤器和监听器的使用,这些都是构建安全、高效Web应用的核心知识点。 1. **登录注册**:这是任何Web...

    破天一剑私服 登陆器E语言源码

    【标题】"破天一剑私服 登陆器E语言源码"揭示了这个压缩包包含的是一个用于私人服务器(私服)的游戏登录器的源代码,使用的编程语言是E语言。E语言,全称Easy Language,是一种面向对象的、易于学习的编程语言,常...

    风之恋1.04H生成器

    4. **安全与反作弊**:生成器在设计时需要考虑如何防止作弊行为,可能采用的技术包括但不限于:验证码系统、IP和MAC地址绑定、数据包检测和过滤等。 5. **部署与更新**:生成器生成的登陆器应具备便捷的部署方式,...

    java中filter的用法

    二、检测用户是否登陆的过滤器 在这个例子中,我们实现了一个名为 CheckLoginFilter 的 Filter,该 Filter 的作用是检测用户是否登陆。如果用户未登录,则重定向到指定的登录页面。其实现代码如下: ```java ...

    spring security3 开发手册

    Spring Security的入门通常以一个简单的Hello World示例开始,通过这个示例用户可以了解如何配置过滤器,利用命名空间简化配置过程,并且完善整个项目结构。运行示例将帮助用户理解Spring Security的基本工作原理。 ...

    JAVA-JSP EIMS系统-OA子系统的设计与开发(源代码+论文)

    本系统拥有以下功能: CheckLogin 登陆检测 CreateTests 生成试卷 DeleteTests 删除试卷 ... StringFilter 字符编码过滤器 Com.gton.util.* MyDate 日期操作类 MyString String操作类 MyXML XML操作类

    JAVA JSP 实现 信息办公 XML考试系统

    考试系统 类 Bean类 ...AdminBean 管理员 ResultBean 结果 TestBean 试题 TestsBean 试卷 UserBean 用户 ...DataBean 数据库操作 ... CheckLogin 登陆检测 ... StringFilter 字符编码过滤器 Com.gton.util.*

    structs2拦截器做的阻止未登录的用户访问

    在Structs2中,拦截器是基于AOP(面向切面编程)理念实现的,它们可以看作是控制器方法执行前后的过滤器。通过定义和配置拦截器,我们可以拦截并处理HTTP请求,决定是否允许请求继续进行,或者返回错误信息、重定向...

    单点登陆(SSO)案例(三)

    例如,用户首次访问受保护的页面时,`test.jsp`可能负责检测用户是否已登录,如果没有,则重定向到CAS的登录页面。 3. `WEB-INF`:这是Java Web应用的标准目录结构,通常包含应用的类文件、配置文件等。在SSO场景下...

Global site tag (gtag.js) - Google Analytics