WEB项目中权限控制 想控制到按钮这一级别

gxw19820801 2010-01-08 09:57:02
项目中 想通过管理员来管理用户,实现到页面按钮级别的控制,可针对每一个按钮设置权限,大家有什么好的思路没 ,给讲讲
...全文
8068 37 打赏 收藏 转发到动态 举报
写回复
用AI写文章
37 条回复
切换为时间正序
请发表友善的回复…
发表回复
ableesun 2012-10-24
  • 打赏
  • 举报
回复
kingone1980 2012-01-02
  • 打赏
  • 举报
回复
我也想做这个功能,我看过这方面的数据库,是把权限写到表里的,不过我是新手,不知道在怎么处理页面上的按钮是否显示,显示后如何排列。
高手解答。最后有实例。。。新手 邮箱:16815435@QQ.com
kingone1980 2012-01-02
  • 打赏
  • 举报
回复
我也想做这个功能,我看过这方面的数据库,是把权限写到表里的,不过我是新手,不知道在怎么处理也没上的按钮是否显示,显示后如何排列。
高手解答。最后有实例。。。新手 邮箱:16815435@QQ.com
zyl258 2011-11-11
  • 打赏
  • 举报
回复
正被此问题困扰!!!
zw569378783 2011-06-19
  • 打赏
  • 举报
回复
从数据库 入手 , 在权限表中加按钮 一列, 那个权限 需要 控制到 按钮 在判断
yanglunliang 2010-12-12
  • 打赏
  • 举报
回复
有点收获,不过并见到好贴
mattdamon2007 2010-05-06
  • 打赏
  • 举报
回复
用户-》角色——》权限
bea_java 2010-04-28
  • 打赏
  • 举报
回复
同意将按钮弄到数据库进行判断。。。
码农小小鸟 2010-01-08
  • 打赏
  • 举报
回复
你直接把权限取到前台判断主可以了撒,然后做一个过虑器过虑非法访问,这样实现起来不复杂,简单,但安全性不太好
牛叔 2010-01-08
  • 打赏
  • 举报
回复
这个还真不会。。。
csd6101 2010-01-08
  • 打赏
  • 举报
回复
ibm.account.management

这个就是在数据库中的的按钮对应的模块名称,比如用户管理
csd6101 2010-01-08
  • 打赏
  • 举报
回复
按钮对应的肯定是某个模块的一个或多个路径,可以在权限表中配置该模块的权限名,xml中写关于该模块都有哪些路径能访问。例如:

<?xml version="1.0" encoding="UTF-8"?>
<permission>
<item>
<resource-class name="ibm.account.management">
<url value="/ibm/account/userM" />
<url value="/ibm/grails/account/" />

</resource-class>
</item>
</permission>
zhangyy130 2010-01-08
  • 打赏
  • 举报
回复
那我觉得你应该先把按钮,按权限分类分级别。然后在数据库角色分配看是否有这个权限级别。
gxw19820801 2010-01-08
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 wnjok 的回复:]
后台控制权限的话,用spring-aop就可以了
如果你用的是struts2,用struts2的拦截器也可以,
反正想做权限控制,这类的东西,最好用拦截器,这样很好维护
[/Quote] 你说的有道理啊
但是 项目经理说没有这么严格 隐藏就行
BearKin 2010-01-08
  • 打赏
  • 举报
回复
恩 如果说您的项目真的需要到这种程度的话 这种事情是没捷径的

按照往常的方式来看 很多人都喜欢用拦截器或者过滤器来完成这些东西 但是那只是些基础的(比如普通的网站后台 防止别人乱入..)

如果对权限精细到针对某一个操作允许不允许的话 那就不能这样做了 只能一点一点的判断
如果真的需要这样的话 没有捷径..
timeriver_wang 2010-01-08
  • 打赏
  • 举报
回复
后台控制权限的话,用spring-aop就可以了
如果你用的是struts2,用struts2的拦截器也可以,
反正想做权限控制,这类的东西,最好用拦截器,这样很好维护
timeriver_wang 2010-01-08
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 gxw19820801 的回复:]
引用 5 楼 phoenixyiyou 的回复:
引用 4 楼 gxw19820801 的回复:
引用 2 楼 phoenixyiyou 的回复:
控制到按钮也无非就是控制到action级别,应该不复杂呀?
因为在struts或者ssh框架中一般情况下,每个按钮对应一个.do也对应一个action,这样你只要把你的权限控制代码写到baseaction里,就可以控制了!
我是要管理员可以单独给用户 可以使用那个按钮那个按钮不可以使用


那你就把每个按钮入库,分配给用户后,也同时把这个按钮对应的权限赋给这个用户!但上面我写的那个思路还是可以用,譬如,原来这个action(按钮)对应的权限是2才可以访问,现在就给这个用户赋上2这个权限!
你说的有道理 我再想想啊
[/Quote]
严格的话,前台jsp,后台action都应该考虑的。
我想你的意思是,“在前台不让他显示”,如果这样的话,有很多种方式啊
比如,用jstl的
<c:if test="${user.rights.right2 !=null}">
<input type="button",value="删除其他用户",onclick="a()"/>
</c:if>
,但是,只在前台作限制是不行的,
比如用户1,他看不到删除按钮,但是他可以通过在地址栏里输入get请求删除啊
比如http://127.0.0.1:8080/ssh/delete.action?id=18
照样可以删除啊
  • 打赏
  • 举报
回复
路过。
tuo_bing 2010-01-08
  • 打赏
  • 举报
回复
从数据库方面下手吧,用户表 --- 权限表 ---功能表(每个按钮的功能)

用户登录,从数据库中取出其对应的权限,然后接下来的操作中,每次操作前判断是否有这个权限

如果是追加的话,使用 spring 的 aop 可能会使改动比较小
yao0220 2010-01-08
  • 打赏
  • 举报
回复
把到按钮级的各个权限归类合并,保存到表中或xml文件中,在创建权限组表,允许该权限组可执行多个权限的操作,这样方便了管理员的管理,不用对每个用户都细化权限操作,只要分配权限组即可,程序中判断权限组或具体权限来显示或不显示按钮,对点击按钮后执行操作的代码也要判断权限,防止非法权限执行,这些可以写成通用类来判断执行,怎么方便,根据自己的情况了
加载更多回复(17)

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧