日期:2014-05-17  浏览次数:20726 次

WEB项目中权限控制 想控制到按钮这一级别
项目中 想通过管理员来管理用户,实现到页面按钮级别的控制,可针对每一个按钮设置权限,大家有什么好的思路没 ,给讲讲

------解决方案--------------------
我现在后台权限控制都是用acegi,将权限细化到按钮或者单个操作的级别,在页面使用acegi的tag控制显示。比较好用
------解决方案--------------------
控制到按钮也无非就是控制到action级别,应该不复杂呀?
因为在struts或者ssh框架中一般情况下,每个按钮对应一个.do也对应一个action,这样你只要把你的权限控制代码写到baseaction里,就可以控制了!
------解决方案--------------------
探讨
引用:
引用:
控制到按钮也无非就是控制到action级别,应该不复杂呀?
因为在struts或者ssh框架中一般情况下,每个按钮对应一个.do也对应一个action,这样你只要把你的权限控制代码写到baseaction里,就可以控制了!
我是要管理员可以单独给用户 可以使用那个按钮那个按钮不可以使用


那你就把每个按钮入库,分配给用户后,也同时把这个按钮对应的权限赋给这个用户!但上面我写的那个思路还是可以用,譬如,原来这个action(按钮)对应的权限是2才可以访问,现在就给这个用户赋上2这个权限!

------解决方案--------------------
后台控制权限的话,用spring-aop就可以了
如果你用的是struts2,用struts2的拦截器也可以,
反正想做权限控制,这类的东西,最好用拦截器,这样很好维护
------解决方案--------------------
恩 如果说您的项目真的需要到这种程度的话 这种事情是没捷径的

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

如果对权限精细到针对某一个操作允许不允许的话 那就不能这样做了 只能一点一点的判断 
如果真的需要这样的话 没有捷径..
------解决方案--------------------
按钮对应的肯定是某个模块的一个或多个路径,可以在权限表中配置该模块的权限名,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>