`
geeksun
  • 浏览: 965378 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

filter控制url访问权限

阅读更多

         在project应用中有一些url是不可以直接访问的,必须有授权或是经过某些处理才能访问,比如访问某些功能必须登录,某些功能必须是指定的用户才能访问,这些需要用到访问权限的控制,如果具有访问的权限,则允许访问,没权限则跳转到指定的处理页面。

package com.bird.filter;

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

/**
 * @author jzq
 *  URL 访问控制
 *  2009-11-12
 */
public class AccessPurviewFilter extends HttpServlet implements Filter {    
    /**  
     *  重定向的URL  
     */  
    private String redirectURl = null;

   /**   doFilter方法的第一个参数为ServletRequest对象。此对象给过滤器提供了对进入的信息(包括
    *    表单数据、cookie和HTTP请求头)的完全访问。第二个参数为ServletResponse,通常在简单
    *    的过滤器中忽略此参数。最后一个参数为FilterChain,此参数用来调用servlet或JSP页。
    *    -- 如果处理HTTP请求,并且需要访问诸如getHeader或getCookies等在ServletRequest中
    *    无法得到的方法,就要把此request对象构造成HttpServletRequest
    */
    public void doFilter(ServletRequest sRequest, ServletResponse sResponse,
            FilterChain filterChain) throws IOException, ServletException {
          HttpServletRequest request = (HttpServletRequest) sRequest;   
         HttpServletResponse response = (HttpServletResponse) sResponse;   
         HttpSession session = request.getSession();   
   
         // 如果回话中的用户名为空,页面重新定向到登陆页面   
         if (session.getAttribute("userName") == null) {
             String contextPath  = request.getContextPath();
             String currentPath = request.getRequestURI(); 
             response.sendRedirect(contextPath  + redirectURl);   
         }            
    }
    
    public void init(FilterConfig arg0) throws ServletException {
       redirectURl = "/login.jsp";         
    }     
}
 web.xml中配置要过滤的URL:

  <filter>
        <filter-name>AccessPurviewFilter</filter-name>
        <filter-class>com.bird.filter.AccessPurviewFilter</filter-class>
  </filter>
  <filter-mapping>
       <filter-name>AccessPurviewFilter</filter-name>
       <url-pattern>/frame/*</url-pattern>
  </filter-mapping>
        上面配置当用户进入 frame 文件夹下的页面的时候,程序会进入 AccessPurviewFilter 里的doFilter方法里,进行权限的判断。
分享到:
评论

相关推荐

    Filter控制页面的访问权限

    下面我们将详细讨论Filter的工作原理以及`UserRoleFilter`如何实现页面访问权限控制: 1. **Filter生命周期**: - **初始化**:当Filter被加载时,会调用`init(FilterConfig filterConfig)`方法。在这个方法中,`...

    shiro动态URL权限控制

    然后,你需要创建一个`ShiroFilter`配置,定义Shiro过滤器链,这是Shiro控制URL访问的核心部分。在`web.xml`或Spring Boot的配置文件中,你会看到类似下面的配置: ```xml &lt;filter&gt; &lt;filter-name&gt;shiroFilter&lt;/...

    SpringBoot 权限控制(菜单控制,页面元素控制,url控制)

    本篇文章将详细探讨如何在SpringBoot中实现基于RBAC(Role-Based Access Control,基于角色的访问控制)的权限控制,包括菜单控制、页面元素控制以及URL控制。 首先,让我们理解RBAC模型。RBAC是一种权限分配策略,...

    javaweb实现的访问权限控制示例

    在“javaweb实现的访问权限控制示例”中,我们主要关注的是如何利用Filter进行权限校验。通常,我们会创建一个自定义的Filter类,继承自`javax.servlet.Filter`接口,并实现其`doFilter()`方法。在这个方法中,我们...

    java禁止直接url访问图片

    标题“Java禁止直接URL访问图片”涉及到的是网络资源保护和权限控制的问题,主要知识点包括: 1. **HTTP请求与响应**: 当用户通过浏览器或其他客户端工具输入一个URL来访问图片时,实际上是发送了一个HTTP GET...

    Filter进行权限控制

    在这个场景中,"Filter进行权限控制"指的是使用`Filter`来实现用户访问权限的管理,确保只有登录后的用户才能访问特定的资源。下面我们将深入探讨`Filter`的工作原理以及如何实现登录控制。 `Filter`是Java Servlet...

    filter 实现权限控制

    本文将详细探讨如何通过`Filter`实现权限控制,以及与RBAC(Role-Based Access Control,基于角色的访问控制)的关系。首先,让我们理解`Filter`的概念。 `Filter`是Java Servlet API中的一个重要组件,它允许我们...

    filter过滤器实现权限访问控制以及同一账号只能登录一台设备

    在Web开发中,权限访问控制和用户会话管理是至关重要的环节。`Filter`过滤器是Java Servlet技术中的一种机制,用于对HTTP请求和响应进行预处理和后处理,从而实现诸如权限验证、数据转换、日志记录等功能。在这个...

    JSP权限管理系统filter

    解压后,你可以查看源码,学习如何实现一个具体的JSP权限管理系统,包括Filter的使用、用户验证和权限控制等。 总的来说,JSP权限管理系统filter是一种有效的安全措施,它通过拦截和处理请求,确保了Web应用的安全...

    Java Filter 限制用户浏览权限

    此外,我们还可以根据需要进一步扩展过滤器,实现更复杂的权限控制。例如,我们可以添加角色检查,只允许具有特定角色的用户访问某些资源。这可以通过在会话中存储用户的角色信息,并在过滤器中进行比较来完成: ``...

    对应本博客:shiro、基于url权限管理章节的源代码

    2. **授权(Authorization)**:也称为权限控制,是确定用户是否有权限执行特定操作或访问特定资源的过程。在基于URL的权限管理中,Shiro会检查用户的权限与他们尝试访问的URL是否匹配。 3. **会话管理(Session ...

    Fliter访问权限控制.rar

    "Fliter访问权限控制.rar"这个压缩包包含了一个关于如何实现访问权限控制的Filter实例,对于学习如何在实际项目中保护资源的安全性具有很高的参考价值。 首先,Filter的主要作用是进行数据预处理或后处理,比如登录...

    利用Filter限制用户浏览权限

    本话题将详细探讨如何利用Filter来限制用户浏览特定的页面,以实现用户权限控制。 一、Filter概述 Filter是Servlet规范的一部分,它允许开发者在请求到达目标资源(如Servlet或JSP)之前和之后对请求和响应进行拦截...

    控制访问网站权限的javaWeb小项目

    4. **访问控制列表(ACL)**:ACL是权限控制的核心,它定义了哪些用户或角色可以访问特定的URL、方法或资源。例如,只有管理员可以访问后台管理系统。 5. **过滤器(Filter)机制**:在JavaWeb中,使用Servlet ...

    filter 过滤用户权限

    本篇将详细探讨`filter`如何用于过滤非登录用户的权限控制,以及相关的源码实例。 一、Filter基本概念 在Java Servlet规范中,Filter是一个接口,它允许开发者在请求到达Servlet之前对其进行拦截和处理,也可以在...

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

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

    过滤器实现多层权限控制

    过滤器(Filter)技术常被用来实现多层权限控制,确保只有合法的用户才能访问特定的资源。本文将深入探讨如何利用过滤器实现多层权限控制,并结合给定的标签“源码”和“工具”,来提供一个具体的实践示例。 首先,...

    java权限控制

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

    用户登录过滤相关页面,过滤URL越权访问

    通过使用Java EE中的过滤器,我们可以有效地管理项目的字符编码,并且可以实现对未登录用户的访问权限控制。这两种方法不仅可以提高系统的安全性,还能提升用户体验。在实际项目开发过程中,开发者可以根据具体需求...

    java web权限访问过滤器

    3. **实现权限检查**:在`isUserAuthorized()`方法中,我们可以根据业务逻辑检查用户是否具有访问权限。这通常涉及到从HTTP session中获取用户信息,然后比较用户的角色或权限与所需访问资源的访问级别。 4. **处理...

Global site tag (gtag.js) - Google Analytics