Apache Shiro隐含[url]限制

时间:2013-08-30 09:52:20

标签: apache security permissions shiro

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

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

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

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

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

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

(从Shiro Docs获得)

我原本以为当访问指定的 url 时,实例化了 perms 过滤器,发现主题缺乏隐含权限,页面不呈现!然而,页面似乎呈现得很好。 :(

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

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

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

在此过滤器上方,我有一个匹配的 角色 过滤器,从未达到过滤器过滤器。

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