我有一个 uri,例如 someController/someAction?param1=aa¶m2=bb
是否有一些 grails 方法可以从这个 uri 中提取控制器名称和动作名称。
或者 shiro 有什么方法可以检测到这个 uri 是允许的吗?
我有一个域菜单(名称,url),现在想要获取当前用户允许的菜单列表。
url 例如 /auth/login(可能映射为 user:login), /user/login
所以2天前我问了这个问题。
现在我将菜单更改为(名称、控制器、操作、参数),并像这样过滤菜单列表:
def subject = SecurityUtils.subject;
menuList.each{
if(it.permission){
def perm = shiroPermissionResolver.resolvePermission("${it.permission.controller}:${it.permission.action}")
def isPermitted = subject.isPermitted(perm)
println "$isPermitted -> ${it.permission.controller}:${it.permission.action}"
}
}
对不起我的英语不好,谢谢你的回复。
顺便说一句,这里是如何缓存 shiro 的另一个问题: 如何在 grails shiro 中使用缓存权限
To proflux:那么你认为存储菜单列表的更好方法是什么?原因:
- 由于用户的权限,它需要向用户显示不同的菜单。
- 有时我们更新一个 web 应用程序,但想稍后向用户显示菜单。所以我们只需要改变比如一个menu.visible。(比更改硬代码 cfg 或源代码更好)。
- 我们正在使用 extjs 来显示菜单(所以导航插件不能使用)。