【问题标题】:Apache Shiro - "Reverse" ImpliesApache Shiro - “反向”暗示
【发布时间】:2018-05-08 02:41:51
【问题描述】:

情况

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

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

试验

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

根据文档,它只在隐含权限的情况下反过来起作用,所以printer:my-printer:* 将隐含printer:my-printer:print

很遗憾,我还没有找到检查“至少一个”的方法。 有没有类似printer:+:print 的东西(这里指的是正则表达式)?


有什么建议吗?

【问题讨论】:

    标签: java permissions shiro


    【解决方案1】:

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

    不过,通常您不需要这样做。您将分配一个用户printer:*:print,您的应用程序将检查他们是否可以使用以下权限在特定打印机上printprinter:my-printer:print。我知道这是一个过于笼统的答案,也许您可​​以对您的用例提供更多解释,我们可以提供其他想法/建议来模拟您的权限?

    【讨论】:

      猜你喜欢
      • 2017-09-20
      • 2016-05-07
      • 2017-01-04
      • 2013-03-13
      • 2017-12-29
      • 2014-08-31
      • 2013-10-25
      • 2017-10-02
      • 2013-06-11
      相关资源
      最近更新 更多