`

权限过滤器Filter

    博客分类:
  • java
 
阅读更多
package com.baitw.struts.utils;

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.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.apache.struts2.ServletActionContext;

/**
 * 
 * 权限过滤器
 * 
 * */

public class AuthorityFilter implements Filter {

	private FilterConfig config;
	
	//过滤器核心方法
	public void doFilter(ServletRequest request, ServletResponse response,
			FilterChain chain) throws IOException, ServletException {
		// TODO Auto-generated method stub
		//获取Filter配置参数
		String encoding=config.getInitParameter("encoding");
		String loginPage=config.getInitParameter("loginPage");
		String proLogin=config.getInitParameter("proLogin");
		//设置request编码
		request.setCharacterEncoding(encoding);
		HttpServletRequest requ=(HttpServletRequest) request;
		HttpSession session=requ.getSession(true);
		//获取客户请求页面
		String requestPath=requ.getServletPath();
		/*
		//获取cookie
		Cookie[] cookies=requ.getCookies();
		Cookie c=cookies[0];
		String val=c.getValue();
		*/
		/**
		 * 如果session范围内的user为null,即表明没有登录
		 * 且用户请求的既不是登录页面,也不是处理登录页面
		 * */
		if(session.getAttribute("username")==null
				&&!requestPath.endsWith(loginPage)
				&&!requestPath.endsWith(proLogin)
				){
			System.out.println("权限拦截器的消息:"+"终止");
			request.getRequestDispatcher(loginPage)
			.forward(request, response);
		}else{
			System.out.println("权限拦截器的消息:"+"放行");
			chain.doFilter(request, response);
		}
	}

	public void init(FilterConfig config) throws ServletException {
		// TODO Auto-generated method stub
		this.config=config;
	}
	
	public void destroy() {
		// TODO Auto-generated method stub
		this.config=null;
	}

}

<!-- 权限拦截器  -->
	<filter>
		<filter-name>authority</filter-name>
		<filter-class>com.baitw.struts.utils.AuthorityFilter</filter-class>
		<init-param>
			<param-name>encoding</param-name>
			<param-value>GBK</param-value>
		</init-param>
		<init-param>
			<param-name>loginPage</param-name>
			<param-value>/view/login.jsp</param-value>
		</init-param>
		<init-param>
			<param-name>proLogin</param-name>
			<param-value>/view/admin/main.jsp</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>authority</filter-name>
		<url-pattern>/admin/*</url-pattern>
	</filter-mapping>
分享到:
评论

相关推荐

    过滤器Filter的全面解析

    总的来说,Java Web中的过滤器Filter是一种强大的工具,它可以帮助开发者在不改变原有业务逻辑的情况下,增加额外的功能和控制,提高了代码的可维护性和灵活性。理解并熟练掌握过滤器的使用,对于任何J2EE开发者来说...

    filter_权限过滤器

    "filter_权限过滤器"指的是利用过滤器来控制用户访问特定资源的权限,确保只有具有相应权限的用户才能访问敏感数据或执行特定操作。这是一种最佳实践,能够提供全面且安全的权限管理。 过滤器是Servlet规范的一部分...

    Struts权限过滤器

    Struts权限过滤器是Java Web开发中用于控制用户访问权限的关键组件,主要应用于基于Struts 2框架的应用程序。在Struts 2框架中,过滤器扮演着重要的角色,它们在HTTP请求到达Action之前进行拦截,对请求进行预处理,...

    利用过滤器设置权限利用过滤器设置权限

    ### 利用过滤器设置权限 在Web应用开发过程中,权限控制是非常重要的一个环节,它确保只有具有相应权限的用户才能访问特定资源。本篇文章将详细介绍如何通过Web应用中的过滤器来实现对用户访问权限的控制。 #### ...

    Filter(过滤器)简介和工作原理

    Filter(过滤器)简介和工作原理 Filter 简介 Filter(过滤器)是 Java EE 中的一种组件,用于拦截和处理 Servlet 容器中的请求和响应。Filter 的基本功能是对 Servlet 容器调用 Servlet 的过程进行拦截,从而在 ...

    java web权限访问过滤器

    本教程将详细讲解如何使用Java Web中的过滤器(Filter)来实现这样的访问控制。过滤器是Servlet API的一部分,它允许我们在请求到达目标资源(如Servlet、JSP页面)之前或之后对请求和响应进行拦截处理。 首先,...

    java 中如何使用filter过滤器

    在Java Web开发中,Filter(过滤器)是一个强大的工具,它允许开发者在数据处理的前后进行拦截和修改。本文将详细介绍如何在Java中使用Filter过滤器,以及如何配置相关的配置文件,让你一目了然。 ### 1. Filter...

    通过过滤器管理用户权限(2)

    3. **实现用户权限过滤器** - 创建自定义Filter:你需要创建一个实现`javax.servlet.Filter`的类,并在`doFilter()`方法中编写权限检查逻辑。 - 注册Filter:将自定义Filter添加到Web应用的部署描述符(`web.xml`)...

    权限管理(过滤器粗粒度无侵入拦截方式)

    在这个例子中,我们的权限过滤器会在这个链中。 3. **身份验证**:过滤器首先检查请求的上下文(例如,通过session获取用户信息)以确定用户是否已登录。如果用户未登录,可以重定向到登录页面,或者返回错误信息。 ...

    Jsp中使用过滤器实现用户权限限制功能

    接下来,我们将按照以下步骤来创建一个简单的用户权限过滤器: 1. **创建过滤器类**: 在`src`目录下创建一个新的Java类,例如`UserAuthorizationFilter`,实现`Filter`接口。你需要重写`doFilter()`方法,在这个...

    servlet过滤器技术实例,

    在本实例中,我们将深入探讨Servlet过滤器(Filter)的使用和实现,以及它在实际应用中的重要性。 一、Servlet过滤器简介 Servlet过滤器遵循Java Servlet规范,通过实现`javax.servlet.Filter`接口来创建自定义过滤...

    jsp 权限过滤器的应用

    【标题】:“jsp 权限过滤器的应用” 在Java Web开发中,权限过滤器是实现用户访问控制的关键组件。它允许开发者对用户的请求进行预处理,根据用户的角色和权限来决定是否允许他们访问特定的资源。这篇博客文章,...

    通过过滤器判断用户权限

    通过过滤器判断用户权限是实现应用安全访问控制的一种常见手段,尤其在Web应用程序中非常普遍。下面我们将基于提供的文件信息,深入探讨如何通过过滤器来判断用户的权限。 ### 一、UserPermissionFilter类详解 ###...

    jsp filter 过滤器判断用户是否登录

    通过使用过滤器(Filter),可以在请求到达目标资源(如Servlet或JSP页面)之前进行处理,例如实现登录状态检查、权限验证等功能。下面我们就通过分析一个具体的示例代码来详细了解如何使用JSP Filter过滤器来判断...

    servlet过滤器实例经典过滤器

    4. **权限过滤器**:根据用户的权限控制访问。过滤器可以检查用户的角色,如果用户不具备访问某个资源的权限,返回错误信息或重定向到无权限页面。 5. **GZIP压缩过滤器**:提高网站性能,通过压缩HTTP响应内容减少...

    j2ee过滤器Filter使用详解(实例)

    本文将深入解析J2EE过滤器Filter的使用方法,并通过实例来阐述其工作原理。 过滤器在J2EE环境中扮演着预处理和后处理的角色,它可以拦截进入和离开Web应用程序的请求和响应,对数据进行处理或验证,从而提供诸如...

    过滤器--控制不同权限用户访问不同文件夹代码.rar

    在IT领域,尤其是在Web开发中,过滤器(Filter)是一种常用的技术,用于处理HTTP请求和响应,实现诸如权限控制、日志记录、数据过滤等功能。本案例中的"过滤器--控制不同权限用户访问不同文件夹代码.rar"是一个针对...

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

    这类拦截器和过滤器的实现适用于任何需要实施权限控制的Web应用,例如电子商务网站、企业信息系统等。它们可以有效地提高应用的安全性,避免未授权的用户访问敏感信息或执行重要操作。 总结来说,这个项目提供了...

    java filter过滤器

    【Java Filter过滤器详解】 Java Filter是Java Servlet技术的一部分,它允许开发者在Servlet容器中对HTTP请求和响应进行拦截处理,实现数据过滤、权限控制、日志记录等多种功能。Filter的生命周期包括三个主要方法...

    servlet 过滤器例子 filter

    本示例“servlet过滤器例子filter”将深入讲解如何使用Servlet过滤器以及其在实际应用中的作用。 首先,我们来了解什么是Servlet过滤器。Servlet过滤器(Filter)是Servlet API的一部分,定义在`javax.servlet....

Global site tag (gtag.js) - Google Analytics