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());
}
}
}
}
分享到:
相关推荐
这个过滤器的作用是检测用户是否已登陆,如果用户未登陆,将其重定向到登陆页面。实现这个过滤器的关键是使用HttpSession对象来存储用户的登陆信息。 在这个过滤器中,我们使用了Java Servlet API来实现filter接口...
2. **身份验证**:在用户尝试访问受保护的页面时,过滤器可以检查请求中是否携带了有效的登录信息,例如session中的用户对象。如果没有,过滤器可以重定向到登录页面,或者返回403 Forbidden状态码。 3. **会话管理...
如果过滤器检测到当前请求没有有效的session,那么可以判断用户未登录。 9. **安全考虑**:在实际应用中,需要考虑安全性问题,例如使用加密存储密码、防止SQL注入、XSS攻击等。 10. **最佳实践**:为了保持代码的...
二、检测用户是否登陆的过滤器 `CheckLoginFilter`用于验证用户是否已经登录。如果用户未登录,它会将请求重定向到登录页面。这个过滤器可以配置多个参数,如检查的session关键字、重定向URL以及不需要检查的URL列表...
标题中的“用过滤器验证登陆框架,简单实例”指的是在Web开发中,使用过滤器(Filter)技术来实现用户登录验证的一种常见方法。过滤器是Servlet技术的一部分,它允许我们在请求到达目标资源(如Servlet、JSP页面)...
Servlet过滤器大全,各种详细使用的代码! 一、字符编码的过滤器 二、使浏览器不缓存页面的过滤器 三、检测用户是否登陆的过滤器 四、资源保护过滤器 五 利用Filter限制用户浏览权限
二、检测用户是否登陆的过滤器 `CheckLoginFilter`是一个用于验证用户是否已登录的过滤器。如果用户未登录,它将重定向到登录页面。该过滤器可以通过配置参数来定制,如`checkSessionKey`(检查的会话关键字)、`...
用户登录检测过滤器用于检查用户是否已经登录,通常在用户尝试访问需要权限的页面时使用。过滤器会在每个请求之前检查请求的会话(Session)或者Cookie中是否存在有效的用户信息。如果用户未登录或会话超时,过滤器...
总的来说,WPE过登陆器辅助工具虽然能为用户带来便利,但其使用应遵循合法、合规的原则,以免造成不必要的麻烦。对于有兴趣深入了解网络通信和游戏辅助的用户,学习并恰当使用WPE可以是一次宝贵的技术实践经历。
在IT领域,登陆器通常是用于应用程序或网站的客户端组件,它负责用户的身份验证,确保只有合法的用户可以访问特定资源。本主题涉及的是如何自制登陆器的源码,允许你自定义账号和密码,以实现安全的用户登录功能。 ...
之后,每次请求时,客户端都会携带这个Session ID,服务器根据ID找到对应的Session,判断用户是否已登录。 2. **会话劫持与Session失效**: 为了防止用户在多处登录,需要检测并处理Session的会话劫持。一旦检测到...
本项目聚焦于“jsp+servlet的登陆注册”功能,涉及了用户登录、注册、页面自动跳转、登录登出计数、IP封禁以及过滤器和监听器的使用,这些都是构建安全、高效Web应用的核心知识点。 1. **登录注册**:这是任何Web...
【标题】"破天一剑私服 登陆器E语言源码"揭示了这个压缩包包含的是一个用于私人服务器(私服)的游戏登录器的源代码,使用的编程语言是E语言。E语言,全称Easy Language,是一种面向对象的、易于学习的编程语言,常...
4. **安全与反作弊**:生成器在设计时需要考虑如何防止作弊行为,可能采用的技术包括但不限于:验证码系统、IP和MAC地址绑定、数据包检测和过滤等。 5. **部署与更新**:生成器生成的登陆器应具备便捷的部署方式,...
二、检测用户是否登陆的过滤器 在这个例子中,我们实现了一个名为 CheckLoginFilter 的 Filter,该 Filter 的作用是检测用户是否登陆。如果用户未登录,则重定向到指定的登录页面。其实现代码如下: ```java ...
Spring Security的入门通常以一个简单的Hello World示例开始,通过这个示例用户可以了解如何配置过滤器,利用命名空间简化配置过程,并且完善整个项目结构。运行示例将帮助用户理解Spring Security的基本工作原理。 ...
本系统拥有以下功能: CheckLogin 登陆检测 CreateTests 生成试卷 DeleteTests 删除试卷 ... StringFilter 字符编码过滤器 Com.gton.util.* MyDate 日期操作类 MyString String操作类 MyXML XML操作类
考试系统 类 Bean类 ...AdminBean 管理员 ResultBean 结果 TestBean 试题 TestsBean 试卷 UserBean 用户 ...DataBean 数据库操作 ... CheckLogin 登陆检测 ... StringFilter 字符编码过滤器 Com.gton.util.*
在Structs2中,拦截器是基于AOP(面向切面编程)理念实现的,它们可以看作是控制器方法执行前后的过滤器。通过定义和配置拦截器,我们可以拦截并处理HTTP请求,决定是否允许请求继续进行,或者返回错误信息、重定向...
例如,用户首次访问受保护的页面时,`test.jsp`可能负责检测用户是否已登录,如果没有,则重定向到CAS的登录页面。 3. `WEB-INF`:这是Java Web应用的标准目录结构,通常包含应用的类文件、配置文件等。在SSO场景下...