`
- 浏览:
192308 次
- 性别:
- 来自:
新乡
-
利用 Filter 限制用户浏览权限
1). 具体要求:
> 只有用户在拥有了对应的权限后才可访问对应的页面:
* 需要权限保护的页面有 authority 目录下的: article1.jsp, article2.jsp, article3.jsp, article4.jsp
> 可以在 authority/authority-manager.jsp 页面中查询指定用户的权限, 和修改指定用户的权限.
> 访问 authority 目录下的: article1.jsp, article2.jsp, article3.jsp, article4.jsp 也必须登录后才可以访问. 对应前边的登录过滤器
2). 类:
* Authority: 封装权限信息:
/**
* 对应的 uri 地址, 类似于 /authority/article1.jsp
*/
private String uri;
/**
* 显示再页面上的权限的名字: article1
*/
private String displayName;
* AuthorityDao: 实现对权限的查询, 修改操作:
//获取全部的权限
public static List<Authority> getAll()
//获取指定用户的权限
public static List<Authority> getAuthoritiesByName(String name)
//修改指定用户的权限为 authories
public static void updateAuthorities(String name, String[] authories)
* AuthorityFilter: 权限过滤器
* AuthorityManagerServlet: 处理权限请求的 Servlet
* LoginFilter: 处理登录的 Filter
3). JSP:
* authority-manager.jsp: 管理权限
* 403.jsp: 在用户没有权限的时候, 显示该页面提示用户
* ...
4). 实现
> 实现权限管理:
* 参与的 JSP: authority-manager.jsp
* 参与的 Java 类: Authority, AuthorityDao, AuthorityManagerServlet
* Authority.java
* AuthorityDao.java:
> 因为没有使用数据库, 所以采用一些静态成员保存权限和用户信息.
private static List<Authority> authorities = null;
private static Map<String, List<Authority>> userAuthorities = null;
> 修改权限时的 checkbox 的值如下: value 的 - 的前边是 uri, 后边是 displayName
<input type="checkbox" name="authority" value="/authority/article2.jsp-article2" checked="checked" />article2<br/>
* authority-manager.jsp: 使用 JSTL 和 EL
> 实现检查用户是否登录的过滤器.
* 拦截 /authority/*, 此时 /AuthorityManagerServlet 不在拦截的范围内.
* 不需要受保护的 url 列表:
/authority/login.jsp,/authority/login-process.jsp,/authority/articles.jsp,/authority/authority-manager.jsp, /authority/logout.jsp
> 实现权限过滤: 在请求页面时, 通过 AuthorityFilter 检查登录用户是否有对应的权限, 若没有权限, 转发到 403.jsp 页面; 若有权限, 则放行.
源代码在下面可以下载,没有截图(偷点小懒)
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
login登录界面,出现验证码,验证码是servlet后台生成的, 有一个验证码生成bean供大家使用。 filter过滤验证验证码是否正确
用户在没有登录的情况下,无法浏览除登录页面之外的其他页面,并且如果用户名为空,也不能进如其他页面。
(5)编写LogoutServlet类,在cn.itcast.chapter08.filter包中编写LogoutServlet类,该类用于注销用户登录的信息。 (6)在cn.itcast.chapter08.filter包中,编写AutoLoginFilter类,该类用于拦截用户登录的请求,...
jsp filter 过滤器判断用户是否登录的一个demo,可按照里面说明来完成
JavaWeb-过滤器Filter学习(三)实现用户的自动登录与IP黑名单过滤JavaWeb-过滤器Filter学习(三)实现用户的自动登录与IP黑名单过滤JavaWeb-过滤器Filter学习(三)实现用户的自动登录与IP黑名单过滤JavaWeb-过滤器Filter...
用filter实现验证登录,如果未登录,则弹出警告框,若是已登录,则继续
Java Filter 限制用户浏览权限,这是个很简单的例子,初学者也能看懂!
Filter 登录 编码 过滤Filter 登录 编码 过滤Filter 登录 编码 过滤Filter 登录 编码 过滤Filter 登录 编码 过滤Filter 登录 编码 过滤Filter 登录 编码 过滤Filter 登录 编码 过滤Filter 登录 编码 过滤
(2)窃取用户cookies资料,从而获取用户隐私信息,或利用用户身份进一步对网站执行操作; (3)劫持用户(浏览器)会话,从而执行任意操作,例如进行非法转账、强制发表日志、发送电子邮件等; (4)强制弹出广告...
<filter-name>SingleFilter</filter-name> <filter-class>org.com.filter.SingleFilter</filter-class> </filter> <filter-mapping> <filter-name>SingleFilter</filter-name> <url-pattern>/* </filter-...
单点登录的demo(使用cookie+filter实现)
Filter程序中可以实现Cookie的校验,由于Filter可以对服务器的所有请求进行拦截,因此,一旦请求通过Filter程序,就相当于用户信息校验通过,Servlet程序根据获取到的用户信息,就可以实现自动登录了。
讲述了如何制作一个检测是否已经登陆的filter
利用java的filter实现用户浏览权限,不同权限用户的可以浏览不同的页面。
* 认证和授权:可以使用 Filter 来实现认证和授权功能,例如检查用户的登录状态和权限。 * 日志记录:可以使用 Filter 来记录客户端的请求和响应信息,以便进行日志记录和分析。 * 缓存处理:可以使用 Filter 来实现...
filter 过滤非登录用户权限源码实例
filter过滤器实现权限访问控制以及同一账号只能登录一台设备
Gabor滤波器的MATLAB实现,可用于边缘检测
利用java filter 实现业务异常拦截 跳转到错误信息提示页面 我们在做项目中肯定都会遇到自定义业务异常 ,然后将业务异常信息跳转的统一的信息提示页面的情况,比如我们在struts的时候我们会用到struts的异常处理...