`
qys2010
  • 浏览: 126910 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java 使用过滤器控制用户访问权限

    博客分类:
  • java
阅读更多
控制器类

package com.crm.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 LoginFilter implements Filter {   
  
private static final String LOGON_URI = "LOGON_URI";   
  
private static final String HOME_URI = "HOME_URI";   
  
private String logon_page;   
  
private String home_page;   
  
public void destroy() {   
}   
  
public void doFilter(ServletRequest request, ServletResponse response,   
   FilterChain chain) throws IOException, ServletException {   
  HttpServletRequest req = (HttpServletRequest) request;   
  HttpServletResponse resp = (HttpServletResponse) response;   
  resp.setContentType("text/html;");   
  resp.setCharacterEncoding("utf-8");   
  HttpSession session = req.getSession();   
  PrintWriter out = resp.getWriter();   
  // 得到用户请求的URI   
  String request_uri = req.getRequestURI();   
  // 得到web应用程序的上下文路径   
  String ctxPath = req.getContextPath();   
  // 去除上下文路径,得到剩余部分的路径   
  String uri = request_uri.substring(ctxPath.length());   
  // 判断用户访问的是否是登录页面   
  if (uri.equals(logon_page) || uri.equals(home_page)) {   
   chain.doFilter(request, response);   
   return;   
  } else {   
   // 如果访问的不是登录页面,则判断用户是否已经登录   
   if (null != session.getAttribute("curUser")   
     && "" != session.getAttribute("curUser"))    
  
{   
    chain.doFilter(request, response);   
    return;   
   } else {   
    out.println("<script language=\"javaScript\">"  
      + "parent.location.href='" +    
  
ctxPath + logon_page + "'"  
      + "</script>");   
    return;   
   }   
  }   
}   
  
public void init(FilterConfig config) throws ServletException {   
  // TODO Auto-generated method stub   
  // 从部署描述符中获取登录页面和首页的URI   
  logon_page = config.getInitParameter(LOGON_URI);   
  home_page = config.getInitParameter(HOME_URI);   
  // System.out.println(logon_page);   
  if (null == logon_page || null == home_page) {   
   throw new ServletException("没有找到登录页面或主页");   
  }   
}   
  
}   

web.xml


<filter>  
   <filter-name>loginFilter</filter-name>  
   <filter-class>com.crm.filter.LoginFilter</filter-class>  
   <init-param>  
         <param-name>LOGON_URI</param-name>  
         <param-value>/login.jsp</param-value>  
   </init-param>  
   <init-param>  
         <param-name>HOME_URI</param-name>  
         <param-value>/index.jsp</param-value>  
   </init-param>  
</filter>  
<filter-mapping>  
  <filter-name>loginFilter</filter-name>  
  <url-pattern>*.jsp</url-pattern>  
</filter-mapping>  
分享到:
评论

相关推荐

    java web权限访问过滤器

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

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

    总结来说,"过滤器--控制不同权限用户访问不同文件夹代码.rar"是一个实用的示例,它展示了如何使用Java Servlet过滤器技术实现精细的权限控制,确保不同权限级别的用户只能访问其被授权的资源。这样的功能对于保护...

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

    为了实现用户权限的精细化管理,开发者常常会使用过滤器(Filter)来实现对用户访问资源的控制。本文将深入探讨如何在JSP中利用过滤器实现用户权限限制功能。 首先,我们需要了解过滤器的概念。在Servlet规范中,...

    java过滤器的使用

    总之,Java过滤器提供了一种强大的机制,允许我们在Web应用的请求处理流程中插入自定义逻辑,从而增强应用的功能和控制权。在处理中文乱码问题时,正确设置请求和响应的字符编码是至关重要的,而过滤器正为此提供了...

    JAVA过滤器标准代码

    总之,JAVA过滤器作为Java Web开发中的一个重要组成部分,提供了强大的功能和灵活性,可以用于解决多种实际问题,包括但不限于编码处理、权限验证、日志记录、异常处理、数据格式转换和缓存优化等。理解和掌握过滤器...

    Java SpringBoot实现的过滤器(和拦截器)控制登录页面跳转

    本项目主要关注的是如何使用过滤器(Filter)和拦截器(Interceptor)来实现登录页面的控制与跳转。以下是对这些知识点的详细说明: 1. **SpringBoot**: SpringBoot是Spring框架的一个子项目,旨在简化Spring应用...

    java的过滤器

    在描述中提到的“权限判断”,通常是指在用户尝试访问受保护的资源时,过滤器会检查用户的登录状态或角色权限。例如,未登录用户尝试访问管理员页面时,过滤器可以捕获该请求,拒绝访问并重定向到登录页面。 使用...

    基于Java过滤器实现的系统权限控制方法研究.pdf

    基于 Java 过滤器实现的系统权限控制方法研究 简介 ...基于 Java 过滤器实现的系统权限控制方法是一种简单、高效的权限控制方法,可以实现精确的权限控制,拒绝用户对未授权的系统资源进行访问。

    java 常用过滤器

    这种过滤器通常用于实现网站的访问权限控制。 3. **字符编码转换过滤器** 该过滤器用于统一处理请求和响应的字符编码问题,避免乱码。它会在请求进入Servlet之前,将请求参数从特定的编码转换为服务器期望的编码,...

    java 中如何使用filter过滤器

    - **权限控制**:如上面示例所示,检查用户是否已登录,限制未授权访问。 - **字符编码转换**:统一处理请求和响应的编码问题。 - **日志记录**:记录请求信息,便于调试和分析。 - **缓存处理**:对静态资源进行...

    Java自定义过滤器

    1. **权限控制**:在请求到达目标资源之前,检查用户是否具有访问权限。 2. **编码转换**:统一处理请求的字符编码问题。 3. **日志记录**:记录请求和响应的信息,便于后续分析。 4. **性能监控**:记录请求处理的...

    java权限控制

    在Java Web开发中,权限控制是一项至关重要的任务,它确保只有授权的用户才能访问特定的资源和服务。这里的“java权限控制”主要指的是在Web应用程序中实施的安全策略,以保护敏感数据和操作。过滤器(Filter)是...

    通过过滤器判断用户权限

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

    过滤器(java编写的过滤器)

    过滤器可以用来实现各种功能,如用户认证、权限检查、编码转换、日志记录等。在给定的文件片段中,我们看到了一个具体的过滤器配置示例,下面将详细解析这段配置及其背后的知识点。 ### 过滤器的基本概念 过滤器是...

    java写的一个权限控制的插件

    总之,这个名为`jsecurity-0.9.0`的Java权限控制插件提供了管理和限制用户访问权限的功能,可能是基于Jaas或其他相关技术实现。通过对源码的深入学习,开发者可以借鉴其设计理念和实现方法,为自己的项目构建更安全...

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

    本文将深入探讨如何通过过滤器(Filter)来管理用户权限,这是基于Java Servlet技术的一种常见实践。首先,我们来理解过滤器的概念。 过滤器(Filter)是Java Servlet API的一部分,它允许我们在请求到达目标资源...

    java后台权限控制

    Java 后台权限控制是构建安全的Web应用中不可或缺的一部分,它确保了用户只能访问他们被授权的操作和数据。在Java开发中,Apache Shiro是一个非常流行的安全框架,用于实现身份验证、授权(权限控制)、会话管理和...

    javaServlet过滤器

    - **安全性**:过滤器可以检查用户权限,防止未授权访问。 - **数据格式转换**:例如,将请求参数统一转换为UTF-8编码。 - **日志记录**:记录请求和响应信息,便于调试和分析。 - **性能监控**:统计请求处理时间,...

    java一些 常用 的过滤 器

    这类过滤器用于监控和控制对特定资源的访问,如文件、数据库记录或API端点。它们可以在资源被访问之前或之后执行操作,比如记录访问日志、更新权限状态或触发安全策略。这有助于实施细粒度的访问控制和审计策略。 #...

    Java几个过滤器学习技巧

    在Web应用中,通常需要对用户的访问权限进行控制,确保只有经过验证的用户才能访问某些资源。为此,我们可以创建一个过滤器,在用户访问受保护资源之前检查其登录状态。如果用户尚未登录,则将其重定向至登录页面。 ...

Global site tag (gtag.js) - Google Analytics