Apache Shiro - “反向”意味着

时间:2017-11-24 06:05:41

标签: java permissions shiro

情况

假设您拥有以下权限:
printer:my-printer:print
printer:my-printer-2:print

不知道我是否想知道用户是否拥有至少一台打印机的print权限,而不知道打印机列表。

试验

首先我尝试检查*:*:print,但在阅读完文档后,很明显这将检查用户是否有权在所有打印机上打印。

根据文档,它仅在隐含权限时反过来,因此printer:my-printer:*将暗示printer:my-printer:print

很遗憾,我还没有办法检查“至少一个”。 是否有像printer:+:print这样的东西(在这里指的是正则表达式)?

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

您可以使用Subject.isPermitted() boolean[] isPermitted(List<Permission> permissions);

虽然,通常你不需要这样做。您将指定用户printer:*:print,并且您的应用程序将使用权限print检查特定打印机上是否printer:my-printer:print。我知道这是一个非常普遍的答案,也许你可以提供更多关于你的用例的解释,我们可以提供其他想法/建议来建模你的权限?