Apache Shiro 隐式 [url] 限制

Posted

技术标签:

【中文标题】Apache Shiro 隐式 [url] 限制【英文标题】:Apache Shiro Implicit [url] restriction 【发布时间】:2013-09-03 00:17:13 【问题描述】:

我正在使用Apache Shiro 来管理我的应用程序安全性,并取得了巨大成功。但是,我试图在我的 shiro.ini 文件中指定一个 url 路径,该路径将阻止根据分配的主题访问指定页面 'permissions'。

我知道权限通常是有效的,因为我可以使用SecurityUtil 来限制对方法和函数的访问,这工作正常。

SecurityUtils.getSubject().isPermitted("account:create");

我显然遗漏了一些东西,因为当我尝试使用默认的 perms 过滤器通过我的 ini 配置文件应用此权限时,权限似乎被忽略了。

我的 shiro.ini 文件的相关部分:

[urls]
...
/accounts/create.jsf = perms["account:create"]
...

(取自Shiro Docs)

本来以为当访问指定的url时,实例化perms过滤器,发现主题缺少隐含许可并且页面未呈现!但是页面似乎渲染得很好。 :(

我是否需要创建自己的 perms 过滤器实现并指定其操作?我会认为这是提供默认值的重点!

任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

我完全忘记了在找到匹配项时,ini 文件中过滤器的顺序会导致“短路”。

在这个过滤器之上,我有一个匹配的基于 角色 的过滤器,因此永远无法达到 perms 过滤器。

[urls]
...
/** = auth, roles[XXX]
...
/accounts/create.jsf = perms["account:create"]

【讨论】:

以上是关于Apache Shiro 隐式 [url] 限制的主要内容,如果未能解决你的问题,请参考以下文章

CMS url 未通过隐式意图在浏览器中打开

“NSURL”不能隐式转换为“URL”;您的意思是使用“as”来显式转换吗?在迅速 3

Play Framework 2.1 - 找不到隐式 ExecutionContext

简述web程序设计中网页之间隐式参数的传递?

无法将'bytes'对象隐式转换为str python

HIVE 何时将字符串隐式转换为双精度值?