我有一个关于允许访问资源但是拒绝访问Apache Shiro中此资源的某些实例的问题。
假设我有一个资源可以查看或编辑的报告以及两个用户Tom和Katie。
如果我在Shiro中没有弄错,我可以通过授予Tom以下权限来授权Tom编辑所有报告:
"报告:编辑"
Katie还应该能够编辑除了报告x之外的所有报告,而这些报告只能查看。
所以我想表达这样的话:
"报告:编辑" "报告:视图:X"
据我所知,来自Shiro的一切都是关于许可权限的,这可以表示为"报告:编辑:y,z,..."和"报告:查看:x"但是如果你有很多报道,它就不太实用或不易读。
有关如何在Shiro或使用其他方法实现这一目标的任何建议吗?
谢谢你, 乔尔
答案 0 :(得分:1)
您可以创建WildcardPermission类的子类,并实现自己的implies方法来编写自己的拒绝实现。
覆盖WildcardPermissionResolver以返回您的权限实现而不是标准实现。
然后您可以将其配置为在shiro.ini中全局使用:
globalPermissionResolver = com.foo.bar.authz.MyPermissionResolver