在 Shiro 文档中,他们在 shiro.ini 中配置全局 PermissionsResolver(参见 permissionResolver)。
globalPermissionResolver = com.foo.bar.authz.MyPermissionResolver
...
securityManager.authorizer.permissionResolver = $globalPermissionResolver
但是,我正在使用 Guice,所以我不想依赖 shiro.ini。我知道我可以打电话
setPermissionResolver()
在我的 Realm
中,但我不想这样做,因为我有多个 Realm
。
有什么想法吗?谢谢。
最佳答案
事实证明,通过更仔细地阅读上面提到的文档,它说:
如果要配置全局 PermissionResolver,每个要接收配置的 PermissionResolver 的 Realm 都必须实现 PermisionResolverAware 接口(interface)。这保证了配置的实例可以中继到支持这种配置的每个领域。
AuthorizingRealm
也已经实现了这个接口(interface),所以所有的授权领域都应该能够选择一个 PermissionsResolver
。
为了将它与 Guice 绑定(bind),我将其添加到我的 ShiroWebModule
:
bind(PermissionResolver.class).to(MyPermissionResolver.class).in(Singleton.class);
关于java - Shiro Guice 权限解析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25675533/