`
minzhenhua
  • 浏览: 5147 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

strtus2过滤器实现用户登录验证

 
阅读更多

过滤器代码:userLoginFilter.java

package com.gifer.action;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.log4j.Logger;

public class userLoginFilter implements Filter {

	private static Logger log = Logger.getLogger(AuthenticationFilter.class);

	private static String LOGIN_PAGE = "/login.jsp";

	@Override
	public void init(FilterConfig arg0) throws ServletException {
		if (log.isDebugEnabled()) {
			log.info("权限过滤器初始化完成。");
		}
	}

	@Override
	public void destroy() {

	}

	@Override
	public void doFilter(ServletRequest request, ServletResponse response,
			FilterChain chain) throws IOException, ServletException {

		HttpServletRequest req = (HttpServletRequest) request;

		HttpServletResponse res = (HttpServletResponse) response;

		// 当前访问路径
		String currentUrl = req.getRequestURI();

		// 获取session
		HttpSession session = req.getSession();

		// 如果不是登录页面,就要进行身份认证
		if (currentUrl.indexOf(LOGIN_PAGE) == -1) {
			if (log.isDebugEnabled()) {
				log.info("正在对请求进行权限认证," + "请求URL:" + currentUrl);
			}
			// 如果session为空,或者用户没有登录,则重定向输出登录页面
			if (session == null || session.getAttribute("user") == null) {
				res.sendRedirect(req.getContextPath() + LOGIN_PAGE);
				return;
			}
		}

		// 过滤完成,filter链继续向下执行
		chain.doFilter(request, response);
	}

}

 web.xml

    

<!-- 自定义权限过滤器 -->
	<filter>
		<filter-name>authFilter</filter-name>
		<filter-class>com.gifer.action.userLoginFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>authFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

 

分享到:
评论

相关推荐

    struts2配置过滤器

    通过以上分析可以看出,在Struts2项目中配置过滤器是一种非常实用的方法,可以有效地实现对用户请求的预处理工作。需要注意的是,在实际应用中还应考虑更多细节问题,比如如何处理不同环境下的配置差异、如何更灵活...

    struts2用cookie实现自动登录中用过滤器执行读取上下文方法

    在Struts2中实现自动登录功能,通常涉及到利用Cookie来保存用户登录状态,以便在用户再次访问时能够快速恢复其身份。这个过程涉及到几个关键步骤,包括登录处理、Cookie的创建与设置、过滤器的配置以及在请求处理...

    Struts 2 过滤器的总结

    Struts 2中的过滤器是实现请求处理、响应优化和安全控制的关键技术。通过灵活配置和合理设计,过滤器能显著提升Web应用程序的功能性和安全性。掌握过滤器的原理与应用,对于开发高效、安全的Web应用至关重要。

    struts2实例 自定义过滤器 文件上传下载 登录功能

    本实例展示了如何在Struts2环境中实现几个关键功能:自定义过滤器、文件上传下载以及用户登录功能。这些功能是任何Web应用程序的基础组成部分,理解和掌握它们对于提升Web开发技能至关重要。 首先,我们来探讨...

    Struts权限过滤器

    在`web.xml`中添加自定义过滤器的配置,确保它在Struts过滤器之前执行,以便先进行权限检查: ```xml &lt;filter-name&gt;customAuthenticationFilter &lt;filter-class&gt;...

    struts2连接数据库实现用户登录.pdf

    在了解struts2连接数据库实现用户登录的相关知识点之前,首先需要对文档中出现的各种技术词汇有所了解。文档涉及了Struts2框架、web.xml配置文件、Action类以及数据库连接等关键概念。接下来,将详细探讨这些概念...

    使用struts2拦截器对登陆权限验证

    在本案例中,我们将深入探讨如何使用Struts2拦截器实现登录权限验证,同时结合Servlet Filter进一步加强安全性。 首先,让我们理解Struts2拦截器的工作原理。拦截器是基于AOP(面向切面编程)的概念设计的,它们...

    Struts 2 过滤器和拦截器的区别

    通过对Struts 2框架中过滤器和拦截器的核心区别以及具体应用场景的分析,我们可以看到,虽然两者都能实现类似的功能(如权限验证),但它们的工作方式和技术基础存在明显差异。选择合适的技术方案取决于实际项目的...

    struts2实现用户登录

    本文将深入探讨如何利用Struts2来实现用户登录功能,这对于任何Web应用来说都是基础且至关重要的部分。 首先,要理解Struts2的工作原理。Struts2框架的核心是Action类,它处理来自用户的请求,并通过...

    Struts2编写的通用(拦截器,过滤器)Filter

    在本项目中,过滤器可能与拦截器协同工作,同样负责验证用户登录状态。通常,过滤器通过实现`javax.servlet.Filter`接口并重写`doFilter()`方法来实现。过滤器可以全局应用,对所有请求或特定URL模式生效。 **非法...

    struts2与cookie实现自动登录

    - Struts2的拦截器或自定义过滤器会检测到这个Cookie,读取其值并解密。 - 检查解密后的Token是否存在于服务器的Session中。如果存在,说明该用户已经通过了身份验证,可以直接跳转到主页面,实现自动登录效果;...

    struts2技巧,笔记.zip指定404,500页面 utf-8过滤器 防SQL注入 解决乱码

    Struts2提供了一个名为`ActionContextCleanUp`的过滤器,它负责清理ActionContext,确保请求处理过程中使用的字符集是UTF-8。在web.xml中添加此过滤器并配置为全局过滤器,可以确保所有请求都使用UTF-8编码,避免...

    tomcat、struts2、servlet Filter(过滤器) 工作原理

    Servlet Filter(过滤器)是Servlet API的一部分,它允许开发者在请求被Servlet处理之前或之后对请求和响应进行拦截和修改。Filter可以用来实现如登录验证、字符编码转换、日志记录等多种功能。当一个请求到达Web...

    用struts2拦截器实现输入数据过滤前后空格

    在这个场景中,我们将探讨如何使用Struts2拦截器来实现输入数据的过滤,特别是去除前后空格。 首先,我们需要理解拦截器的工作原理。在Struts2中,拦截器是基于责任链模式设计的,它们按照配置的顺序形成一个链条,...

    结合struts2编写的通用过滤器filter

    在SSH(Struts2、Spring、Hibernate)项目中,过滤器通常用于实现以下功能: 1. **安全控制**:如题目中提到的,过滤器可以用来拦截非法登录尝试。通过检查请求参数或会话状态,可以防止未授权用户访问受保护的资源...

    struts2+cas单点登陆例子

    总结一下,Struts2+CAS的单点登录集成涉及到的主要知识点包括:CAS的工作流程、Struts2框架的拦截器机制、Web应用的过滤器配置以及安全认证的实现。通过这个简单的示例,开发者可以学习如何在自己的项目中实施SSO,...

    struts2工作原理及拦截器和过滤器

    Struts2 工作原理及拦截器和过滤器 Struts2 框架的工作原理可以分为以下几个步骤: 1. 客户端发出一个指向 Servlet 容器的请求(Tomcat); 2. 这个请求会经过几个过滤器,最后会到达 FilterDispatcher 过滤器。...

    hibernate+struts2做的登录/注册/的小例子

    Hibernate和Struts2都提供了一些安全相关的工具和插件,例如使用预编译的SQL(PreparedStatement)来防止SQL注入,以及使用过滤器和拦截器来防止恶意脚本。 综上所述,这个项目展示了如何结合使用Hibernate和Struts...

    struts过滤器(拦截器)程序.zip

    例如,在"struts过滤器(拦截器)程序.zip"中,`web.xml`可能包含了对Struts2 Filter的配置,像这样: ```xml &lt;filter-name&gt;struts2 &lt;filter-class&gt;org.apache.struts2.dispatcher.filter....

    Struts2用户登录实例(无数据库)

    总的来说,这个"Struts2用户登录实例(无数据库)"是一个很好的起点,可以帮助初学者理解Struts2的基本工作流程,以及如何在没有数据库的情况下实现用户登录功能。一旦掌握了这些基础,可以进一步探索如何整合数据库...

Global site tag (gtag.js) - Google Analytics