`
itkui
  • 浏览: 27060 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

利用Filter限制用户浏览权限

    博客分类:
  • J2EE
阅读更多

在一个系统中通常有多个权限的用户。不同权限用户的可以浏览不同的页面。使用Filter进行判断不仅省下了代码量,而且如果要更改的话只需要在Filter文件里动下就可以。
以下是Filter文件代码:

  1. package cn.itkui.filter;   
  2.   
  3. import java.io.IOException;   
  4.   
  5. import javax.servlet.Filter;   
  6. import javax.servlet.FilterChain;   
  7. import javax.servlet.FilterConfig;   
  8. import javax.servlet.ServletException;   
  9. import javax.servlet.ServletRequest;   
  10. import javax.servlet.ServletResponse;   
  11. import javax.servlet.http.HttpServletRequest;   
  12.   
  13. public class RightFilter implements Filter {   
  14.   
  15.     public void destroy() {   
  16.            
  17.     }   
  18.   
  19.     public void doFilter(ServletRequest sreq, ServletResponse sres, FilterChain arg2) throws IOException, ServletException {   
  20.         // 获取uri地址   
  21.         HttpServletRequest request=(HttpServletRequest)sreq;   
  22.         String uri = request.getRequestURI();   
  23.         String ctx=request.getContextPath();   
  24.         uri = uri.substring(ctx.length());   
  25.         //判断admin级别网页的浏览权限   
  26.         if(uri.startsWith("/admin")) {   
  27.             if(request.getSession().getAttribute("admin")==null) {   
  28.                 request.setAttribute("message","您没有这个权限");   
  29.                 request.getRequestDispatcher("/login.jsp").forward(sreq,sres);   
  30.                 return;   
  31.             }   
  32.         }   
  33.         //判断manage级别网页的浏览权限   
  34.         if(uri.startsWith("/manage")) {   
  35.             //这里省去   
  36.             }   
  37.         }   
  38.         //下面还可以添加其他的用户权限,省去。   
  39.   
  40.     }   
  41.   
  42.     public void init(FilterConfig arg0) throws ServletException {   
  43.            
  44.     }   
  45.   
  46. }   

以下是在web.xml需要加入的代码

  1. <!-- 判断页面的访问权限 -->  
  2.   <filter>  
  3.      <filter-name>RightFilter</filter-name>  
  4.       <filter-class>cn.itkui.filter.RightFilter</filter-class>  
  5.   </filter>  
  6.   <filter-mapping>  
  7.       <filter-name>RightFilter</filter-name>  
  8.       <url-pattern>/admin/*</url-pattern>  
  9.   </filter-mapping>  
  10.   <filter-mapping>  
  11.       <filter-name>RightFilter</filter-name>  
  12.       <url-pattern>/manage/*</url-pattern>  
  13.   </filter-mapping>  

这篇日志在BlogJava帖过,今天般到JE来,本人原创作品!

分享到:
评论
2 楼 hyj1254 2008-08-14  
受用了,多谢
1 楼 senbao18 2008-04-06  
先顶了 楼主辛苦了!

相关推荐

    六个有用的java过滤器

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

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

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

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

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

    前端安全概览及防范

    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系统以满足不同用户的需求,同时也提醒我们...

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

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

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

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

    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的...

    js 上传图片预览问题

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

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

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

Global site tag (gtag.js) - Google Analytics