我正在使用 Dropwizard 在 Java 中创建 REST 服务结合Apache Shiro用于身份验证和授权。我扩展了 JdbcRealm 以使 Shiro 使用我的 PostgreSQL 数据库(我通过 Hibernate 访问它)。身份验证效果很好。创建组级权限也很容易。不幸的是,我无法找到一种惯用的方法来将某些资源实例绑定(bind)到特定用户(主题)。我知道 Shiro 提供对 instance-level access control 的支持,但文档没有显示允许我执行以下操作的工作流程:
- 用户 Alice 创建资源 X
- 应该允许用户 Bob 读取 X,但不能写入/删除它
- 用户 Alice 应具有对 X 的完全读/写/删除权限
如有任何提示或建议,我们将不胜感激!
最佳答案
我正在调查一个类似的问题,我有一个 Multi-Tenancy 需求,所以我不知道编译时租户是谁,比如这种类型的权限字符串:
global:{tenant}:users:limited,c,r,u,d
您可能想看看 PermissionResolver
我发现此页面很有帮助 AuthorizationConfiguration来自 shiro 文档,shiro 文档有点像散弹枪
关于java - Apache Shiro 的动态实例级权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27136444/