wake

JSP权限控制(一)

近几天不是很忙,就想看看关于 WEB 方式 (Jsp) 后台权限控制的设计实现问题 , Google 搜了一下,一大堆的东西,当看到头大的时候决定自己先试着做一个简单例子。

 

先推荐大家有时间看一下关于 RBAC 即角色访问控制 (Role Based  Access Control) 的相关文章,虽然已经是个老话题了 , 但如果要在一个大的项目中实现权限控制的话,最好还是按照这些文章中的设计去逐步实现。

 

以下的设计只是一个简单的控制,可以应用在一些小成本的项目中。也可能不是最好的解决方法,但旨在与大家交流及共享。各位见笑,闲话少续,言归正传。

 

我的设计思路是这样的:

 

1, 管理员用户表中有个字段专门记录每个用户所拥有的权限。

2, 权限和文件名对应,比如有个权限的名称叫新闻编辑,而与此编辑权限对应的文件有: News_add.jsp,News_del.jsp,News.action 等,他们之间是一对多的关系。如下图:


p1.jpg


 

如果还不明白,请继续往下看:我的想法是这样的 比如 a 用户如果有新闻编辑的权限,那么在 a 用户记录权限的字段里就应该记录 New_add.jsp,News_del.jsp,News.acion 这些值。

 

3 ,那么具体怎么对资源进行控制呢?首先在用户登陆后,将用户的所以信息以对象的形式放入 Session 中。如将用户对象 auser 放入到 session 中,则可用类似

AdminUser adminuser = (AdminUser) session.getAttribute("auser")

adminuser.getUserPopedom()

的方法将该用户所拥有的权限字符取出来,我们这里取出来的字符会是 New_add.jsp,News_del.jsp,News.acion 。那么在需要做控制的页面首先利用

String url = servletRequest.getRequestURI();

url = url.substring(url.lastIndexOf("/") + 1, url.length());

取出当前页的文件名,再将此文件名与该用户的权限字符做比较,如果该文件名在权限字符中可以找到,则表明该用户拥有此页面操作的权限。


今天先写到这里,明天把相关代码给贴出来...

posted on 2006-04-28 17:39 wake 阅读(5866) 评论(2)  编辑  收藏

Feedback

# re: JSP权限控制(一) 2008-07-18 11:20 大帅

对于一些的项目 的确是可行之策。 楼主说的好!!!! 明白了。感谢  回复  更多评论   

# re: JSP权限控制(一) 2013-09-03 17:23 zzhandlyq

收获了不少  回复  更多评论   



只有注册用户登录后才能发表评论。


网站导航: