【问题标题】:spring-security ACL tutorialspring-security ACL 教程
【发布时间】:2014-07-09 18:59:05
【问题描述】:

我需要将角色和权限以及访问列表添加到我们的项目中。我找到了this,但我发现它有点过于基础和具体。

在实施之前我应该​​阅读或遵循更好的教程/文章/示例吗?

【问题讨论】:

    标签: spring permissions spring-security acl


    【解决方案1】:

    我也不喜欢所提供教程的特殊性。我没有指向教程的链接,但也许我可以给你一些路标来指导你找到解决方案。

    我所做的是创建自己的 ACL 和权限。我创建了一个新类 SecuredEntity,它是我所有需要 ACL 支持的域实体的父类。当我从头开始时,这在我的情况下是可能的。显然,如果你不能扩展一个共同的祖先,你可以使用组合而不是继承。

    这个 SecuredEntity 包含我自己的 ACL 实现,它基本上是主体到权限的映射。委托人可以是帐户 ID、角色或组。每个用户都有一组他们可以充当的委托人,这是一组{用户自己的帐户、用户的所有角色以及该帐户所属的任何组}。

    然后我实现了一个自定义PermissionEvaluator,它检索由提供的Authentication 指示的用户的主体集,然后检查指示的对象以确定用户是否已指示权限。

    在使用默认表达式处理程序和 Web 表达式处理程序注册自定义权限评估程序后,我可以使用诸如

    之类的表达式
    @PreAuthorize("hasPermission(#entityId, 'EntityClass', 'read')")
    @RequestMapping("/entities/{entityId}") 
    public String fetchEntity(@PathVariable("entityId") String entityId) {...}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-18
      • 2014-02-15
      • 1970-01-01
      • 1970-01-01
      • 2018-12-21
      • 2013-02-25
      • 2015-06-18
      • 2010-12-27
      相关资源
      最近更新 更多