我正在创建一个Grails网站,用户可以在其中访问他们创建的资源。到这里,一切对我来说都是清楚的。我定义了ROLE_USER并使用Config.groovy文件锁定了我的 Controller 和 Action 。

我面临的问题是我需要支持一组用户,以便同一组的其他用户可以编辑/更新/删除该用户创建的某些资源。如何在Spring Security中将用户与“组”相关联,在这里应使用什么设计/库?

请您参考如下方法:

您需要做的是让用户的角色(授权)来自数据库。在这种情况下,您可以轻松调整用户(或一组用户)所具有的角色,并即时创建/删除它们。这些文档提供了有关如何从数据库中获取角色的一些很好的信息,因此在这里我不再赘述。

但是,一旦动态角色到位,您仍然需要能够将角色连接到所创建的对象。基本上有两种方法可以执行此操作:

  • 访问控制列表
  • 自定义逻辑

  • 根据所需的粒度和所需的灵活性,一种选择可能比另一种更具吸引力。

    访问控制列表实质上允许您在每个用户和每个实体实例之间建立权限映射。可以想象,如果您有大量的实体和用户,那么这将是相当大的开销,并且性能可能会很差。

    另一方面,将您自己的逻辑放在一起要灵活得多,因为您可以设置自己的方案以将实体实例或实体类连接到用户及其角色。


    评论关闭
    IT序号网

    微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!