1

我正在使用Apache Shiro成功地管理我的应用程序安全性。但是,我试图在我的shiro.ini文件中指定一个url路径,该路径将阻止基于分配的“权限”主题访问指定页面。

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

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

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

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

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

(从Shiro Docs获得)

本来以为在访问指定的url时, perms过滤器被实例化,发现主题缺少隐含权限,页面没有渲染!但是页面似乎渲染得很好。:(

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

任何帮助,将不胜感激。

4

1 回答 1

1

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

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

[urls]
...
/** = auth, roles[XXX]
...
/accounts/create.jsf = perms["account:create"]
于 2013-08-30T10:22:20.837 回答