我正在尝试设置具有权限的基于角色的安全性。我正在尝试与Spring-Security一起执行此操作。

我不想设置ACL,因为这似乎对我的要求来说太过严格了。

我只想拥有此article中描述的简单权限和角色。
不幸的是,本文没有描述如何实现给定的解决方案。

有人已经尝试过了,可以指出正确的方向吗?也许还有另一个博客条目描述了实现方式?

非常感谢你。

最佳答案

要实现这一点,您似乎必须:

  • 创建模型(用户,角色,权限)以及检索给定用户权限的方法;
  • 定义您自己的org.springframework.security.authentication.ProviderManager并将其配置(设置其提供程序)为自定义org.springframework.security.authentication.AuthenticationProvider
    最后一个应在其authenticate方法上返回Authentication,应使用org.springframework.security.core.GrantedAuthority设置,在这种情况下,应设置给定用户的所有权限。

  • 该文章中的技巧是为用户分配角色,但是要在Authentication.authorities对象中设置这些角色的权限。

    为此,我建议您阅读API,并查看是否可以扩展一些基本的ProviderManager和AuthenticationProvider而不是全部实现。我已经通过org.springframework.security.ldap.authentication.LdapAuthenticationProvider设置了自定义LdapAuthoritiesPopulator来做到这一点,它将为用户检索正确的角色。

    希望这次我能得到您想要的。
    祝好运。

    关于java - 具有角色和权限的Spring Security,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6357579/

    10-11 20:34