【问题标题】:How to grant ACL in Spring Security without an explicit authentication?如何在没有显式身份验证的情况下在 Spring Security 中授予 ACL?
【发布时间】:2012-06-22 11:06:52
【问题描述】:

当我创建一个新实体时,我想向这个新实体授予 ACL 权限(也称为 ACL 条目)。到目前为止很容易:-)

问题出现在以下场景中:

  • 最终用户无需在网站上进行身份验证即可创建实体。
  • 保留此新实体的服务因此在没有身份验证上下文的情况下运行。
  • 但是:要授予 ACE,需要有一个活动的身份验证上下文。

Spring 的JdbcMutableAclService 使用SecurityContextHolder.getContext().getAuthentication() 来获取当前的认证,所以似乎没有办法规避这个要求。

非常感谢任何想法!

【问题讨论】:

    标签: spring-security acl


    【解决方案1】:

    自己找到了答案:

    在 Web 应用程序中,总是是一个身份验证上下文。如果用户未通过身份验证,则身份验证为 org.springframework.security.authentication.AnonymousAuthenticationToken,它具有一个授予权限:ROLE_ANONYMOUS

    因此,授予该用户创建 ACL 的权限很简单。只需配置 PermissionGrantingStrategy 以使用此角色来授权请求​​。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-02
      • 2014-02-18
      • 2011-11-20
      • 2013-10-14
      • 2015-05-22
      • 1970-01-01
      • 2014-03-06
      相关资源
      最近更新 更多