`

利用Filter限制用户浏览权限[转]

阅读更多

在一个系统中通常有多个权限的用户。不同权限用户的可以浏览不同的页面。使用Filter进行判断不仅省下了代码量,而且如果要更改的话只需要在Filter文件里动下就可以。
以下是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.HttpServletRequest;   
  
public class RightFilter implements Filter {   
  
    public void destroy() {   
           
     }   
  
    public void doFilter(ServletRequest sreq, ServletResponse sres, FilterChain arg2) throws IOException, ServletException {   
        //
获取uri地址
   
         HttpServletRequest request=(HttpServletRequest)sreq;   
         String uri = request.getRequestURI();   
         String ctx=request.getContextPath();   
         uri = uri.substring(ctx.length());   
        //
判断admin级别网页的浏览权限
   
        if(uri.startsWith("/admin")) {   
            if(request.getSession().getAttribute("admin")==null) {   
                 request.setAttribute("message","
您没有这个权限
");   
                 request.getRequestDispatcher("/login.jsp").forward(sreq,sres);   
                return;   
             }   
         }   
        //
判断manage级别网页的浏览权限
   
        if(uri.startsWith("/manage")) {   
            //
这里省去
   
             }   
         }   
        //
下面还可以添加其他的用户权限,省去。
   
  
     }   
  
    public void init(FilterConfig arg0) throws ServletException {   
           
     }   
  
}

<!--
判断页面的访问权限
-->  
  <filter>  
     <filter-name>RightFilter</filter-name>  
      <filter-class>cn.itkui.filter.RightFilter</filter-class>  
  </filter>  
  <filter-mapping>  
      <filter-name>RightFilter</filter-name>  
      <url-pattern>/admin/*</url-pattern>  
  </filter-mapping>  
  <filter-mapping>  
      <filter-name>RightFilter</filter-name>  
      <url-pattern>/manage/*</url-pattern>  
  </filter-mapping>  

web.xml中加入Filter的配置,如下:

<filter>  

        <filter-name>EncodingAndCacheflush</filter-name>  
        <filter-class>EncodingAndCacheflush</filter-class>  
        <init-param>  
            <param-name>encoding</param-name>  
            <param-value>UTF-8</param-value>  
        </init-param>  
    </filter>  
    <filter-mapping>  
        <filter-name>EncodingAndCacheflush</filter-name>  
        <url-pattern>/*</url-pattern>  
    </filter-mapping>  
要传递参数的时候最好使用form进行传参,如果使用链接的话当中文字符的时候过滤器转码是不会起作用的,还有就是页面上


form
method也要设置为post,不然过滤器也起不了作用。

分享到:
评论

相关推荐

    利用Filter限制用户浏览权限

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

    BI SSAS 通过配置表动态权限控制实例项目

    总结来说,"BI SSAS 通过配置表动态权限控制实例项目"展示了如何利用SSAS的灵活性和安全性功能,以满足不同用户群体的个性化访问需求。通过这种方式,企业可以确保敏感数据的安全,同时提供定制化的数据视图,提升...

    5个Servlet过滤器实例源码(JSP)

    Servlet过滤器大全,各种详细使用的代码! 一、字符编码的过滤器 二、使浏览器不缓存页面的过滤器 三、检测用户是否登陆的过滤器 四、资源保护过滤器 五 利用Filter限制用户浏览权限

    六个有用的java过滤器

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

    前端安全概览及防范

    XSS(跨站脚本攻击,Cross-Site Scripting)是一种常见的前端安全威胁,其核心在于攻击者利用网站的安全漏洞,将恶意脚本注入到正常网页中,当其他用户浏览该网页时,这些脚本便会在用户的浏览器环境中执行,从而...

    js学习笔记-恶意代码识别

    此外,还可以结合其他安全策略,如使用Content Security Policy(CSP)限制脚本的来源,使用XSS Filter阻止跨站脚本攻击,以及对所有用户输入进行严格的服务器端验证和过滤。同时,定期更新浏览器和补丁,确保系统...

    防xss攻击和sql注入

    XSS攻击是指攻击者通过在网页中插入恶意脚本,使得用户在浏览页面时,浏览器执行这些脚本,从而获取敏感信息或者对用户的会话进行劫持。XSS攻击主要有三种类型:存储型XSS、反射型XSS和DOM型XSS。为了防范XSS攻击,...

    BBS论坛雏形设计制作JSP

    4. **权限控制**:设置用户角色和权限,限制未授权的访问。 **六、部署与测试** 完成开发后,我们需要将应用部署到服务器(如Tomcat),并进行功能测试和性能测试,确保所有功能正常且响应时间在可接受范围内。 总...

    JSP实训项目---网站

    这通常通过session管理和cookie技术实现,如验证用户登录状态、限制未授权的访问等。同时,可以采用角色权限机制,为不同用户角色分配不同的操作权限。 **7. 错误处理与日志记录** 在开发过程中,错误处理和日志...

    PHP实例开发源码—php易社区 手机社区.zip

    同时,会话管理(session)确保用户在不同页面间的操作得到正确跟踪,实现权限控制。 3. **模板引擎与MVC架构**:为了提高代码组织性和可维护性,开发者可能采用了MVC(Model-View-Controller)架构。Model负责数据...

    Eye3Launcher:将 Android 主屏幕限制为 Web 浏览器

    总之,Eye3Launcher通过巧妙地利用Intent和WebView,提供了一种全新的Android用户体验,将设备转化为一个专门的Web浏览设备。这种设计思路可以启发我们思考如何定制Android系统以满足不同用户的需求,同时也提醒我们...

    前端开源库-serve-index-fs.zip

    "serve-index-fs" 是一个前端开发中常用的开源库,主要用于在本地文件系统上提供一个交互式的目录浏览服务。... ### 1.... `serve-index-fs` 是基于 Node...在实际项目中,合理利用这个库可以极大地提高开发效率和用户体验。

    Hillstone山石网科安全网关命令手册

    - **group**:创建或管理用户组,方便权限管理和分配。 - **group-by**:按指定字段对数据进行分组,便于统计分析。 - **hostname**:设置设备的主机名,便于识别。 - **http**:配置HTTP服务的相关参数,如端口等。...

    js 上传图片预览问题

    此外,还有一种通过滤镜(filter)实现图片预览的方式,这种方法利用了IE特有的滤镜技术,但它仅限于IE浏览器使用,对其他浏览器无效。 针对IE8浏览器,因为原生的.value方法不再返回文件的完整路径,仅返回文件名...

    yii_daohang:yii2导航系统

    6. **权限控制(Access Control)**:利用Yii2的访问控制过滤器(Access Control Filter, ACF)或RBAC(Role-Based Access Control),可以限制某些导航项只对特定用户组可见。这有助于构建更加安全和个性化的用户体验。...

    doc-directory:处理人员部门文档等目录的 WP 插件

    5. **权限控制**:根据需求,可设置访问权限,限制某些内容仅对特定用户或角色可见,保护敏感信息。 三、PHP技术应用 "doc-directory"插件的开发基于PHP语言,这使得它具有高度的灵活性和扩展性。对于熟悉PHP的...

    NewsWidget:这是一个用于显示今日新闻的 Android 小部件应用程序

    4. **用户交互**:虽然小部件空间有限,但 NewsWidget 可能提供一些简单的交互功能,如点击新闻标题跳转至完整文章,或者滑动浏览更多新闻。 5. **更新策略**:为了保持新闻的时效性,NewsWidget 可能有定时更新...

Global site tag (gtag.js) - Google Analytics