java - Apache Shiro 的动态实例级权限

标签 java authorization shiro dropwizard

我正在使用 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/

相关文章:

java - 如何在 Thread 的 sleep() 方法立即执行后停止代码

c++ - 无法通过查询字符串身份验证访问 Amazon s3 数据

ASP.NET MVC 自定义授权

java - 使用 Hibernate 检索特定记录

java - 对 Querydsl 扩展感到困惑?

java - 如何每 500 - 1000 毫秒刷新一次 div 标签?

java - 如何根据Spring用户权限显示HTML菜单

java - 如何从ldap获取用户信息?

authentication - Apache Shiro - 使用 cn 以外的属性进行身份验证?

shiro - 如何在 Apache Shiro 中配置 SameSite Cookie 属性?