`

权限过滤器

阅读更多

在网页制作中往往有些页面在用户没有登录是不能访问的,通常我们可以用session判断但如果页面较多那写的重复代码就多了所以这里我们可以用一个过滤器。

package com.zchen.util.filter;

import java.io.IOException;
import java.io.PrintWriter;

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;

public class AuthFilter implements Filter {

	public void destroy() {
		System.out.println("authfilter destroy");
	}

	public void doFilter(ServletRequest req, ServletResponse resp,
			FilterChain chain) throws IOException, ServletException {
		//System.out.println("authfilter dofilter");
		HttpServletRequest request = (HttpServletRequest)req;
		HttpServletResponse response = (HttpServletResponse)resp;
		HttpSession session = request.getSession(false);
		
		if(session == null || (String)session.getAttribute("admin") == null ||!((String)session.getAttribute("admin")).equals("admin")) {
			System.out.println(request.getContextPath());
			response.sendRedirect( request.getContextPath() + "/AdminLogin.jsp");
			return;
		}
		chain.doFilter(req, resp);
	}

	public void init(FilterConfig config) throws ServletException {
		System.out.println("authfilter init");
	}

}

 在web.xml中配置:

	<filter>
		<filter-name>AuthFilter</filter-name>
		<filter-class>
			com.zchen.util.filter.AuthFilter
		</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>AuthFilter</filter-name>
		<url-pattern>/admin/*</url-pattern>
	</filter-mapping>

 

 

有些时候也用过滤器来过滤掉一下黑名单

package com.zchen.util.filter;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class IPFilter implements Filter {
	
	FilterConfig fc = null;
	
	public void destroy() {
		System.out.println("IPFilter destroy");
	}

	public void doFilter(ServletRequest req, ServletResponse resp,
			FilterChain chain) throws IOException, ServletException {
		//System.out.println("IPFilter dofilter");
		String ip = req.getRemoteAddr();
		String strIPBlackList = fc.getInitParameter("IPBlackList");
		if(strIPBlackList.indexOf(ip) != -1) {
			PrintWriter out = resp.getWriter();
			out.println("Your IP is not welcome!");
			return;
		}
		chain.doFilter(req, resp);
	}

	public void init(FilterConfig fc) throws ServletException {
		System.out.println("IPFilter init");
		this.fc = fc;
	}

}

 

	<filter>
		<filter-name>IPFilter</filter-name>
		<filter-class>
			com.zchen.util.filter.IPFilter
		</filter-class>
		<init-param>
			<param-name>IPBlackList</param-name>
			<param-value>192.168.0.16,192.168.0.165</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>IPFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

 

分享到:
评论

相关推荐

    Struts权限过滤器

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

    jsp 权限过滤器的应用

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

    filter_权限过滤器

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

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

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

    java web 购物车,字符过滤器,权限过滤器,详细备注,适合初学者

    在Java Web开发中,购物车、字符过滤器和权限过滤器是重要的组成部分,它们共同构建了一个安全、功能完善的用户交互系统。以下是对这些概念的详细解释: 1. **购物车**: 购物车是电商网站的核心功能之一,它允许...

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

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

    java的详细权限过滤器

    java的权限过滤器,通过拦截action来实现,非常详细!

    urlFilter权限过滤器

    权限过滤器。很久前,lighter写的一个小例子。感觉挺不错,现在上传是为了方便在禁止U盘以及邮箱的处境下也能在办公室里下下来copy,嘿嘿。当然也希望能因此方便有需要的人(应该够20字了吧,干吗传资源还非20字说明...

    java web权限访问过滤器

    通过以上步骤,我们就利用Java Web的过滤器实现了基本的权限访问控制。这个机制不仅限于简单的登录验证,还可以扩展到更复杂的权限系统,如基于角色的访问控制(RBAC)或其他自定义的权限策略。记住,安全是Web应用...

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

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

    servlet过滤器实例经典过滤器

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

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

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

    java url 权限过滤器

    获得structs的相对权限 url实现权限控制

    c#在MVC中全局权限过滤器,并跳转指定的页面

    在控制器中引用此类名,就能做到对整个控制器或者某个方法根据权限的过滤,

    MVC过滤器.zip

    2. **权限过滤器**:权限过滤器用于控制用户访问权限,通常与身份验证和授权机制结合使用。`AuthorizeAttribute`是内置的权限过滤器,可以限制只有登录用户或者满足特定角色的用户才能访问某个Action。开发者也可以...

    通过过滤器判断用户权限

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

    权限类组件程序.zip_java 权限_权限_权限 过滤 java

    在Java中,这通常涉及到权限过滤器,比如Servlet中的Filter,用于在请求到达目标资源之前进行拦截和处理,例如,根据用户的角色和权限来决定是否允许访问某个URL。 压缩包内的文件名"www.pudn.com.txt"可能是一个...

    六个有用的java过滤器

    限制用户浏览权限过滤器与资源保护过滤器类似,但更加灵活,可以根据不同的条件来决定是否允许用户访问某个资源。实现方法如下: ```java import javax.servlet.*; import javax.servlet.http.HttpServletRequest; ...

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

    本案例中的"过滤器--控制不同权限用户访问不同文件夹代码.rar"是一个针对权限管理的具体应用,它允许开发者根据用户的权限级别决定他们可以访问哪些文件夹或资源。 过滤器的概念源自Java Servlet技术,它是Servlet ...

    权限控制的过滤器

    权限控制的过滤器 蛮好的 写的有点简单 不好勿喷

Global site tag (gtag.js) - Google Analytics