java - Shiro Guice 权限解析器

标签 java guice shiro

在 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/

相关文章:

java - 在 Guice 中注入(inject)方法拦截器

java - 使用 Guice @Inject 时未初始化 @FindBy WebElements

java - Shiro:处理注解抛出的异常

shiro - 使用 JDBCRealm 通过 Shiro 对用户进行身份验证

java - 为什么我会收到此 Maven 错误?

java - 编译错误: class cannot be instantiated

java - 使用 AsyncTask 编辑 Fragment UI 项目

Java - 根据一些代码创建一个接口(interface)

java - Injector.getInstance() 是否总是调用构造函数?

java - 使用 JNDI 配置 Tomcat 8 和 Shiro