我正在尝试使用权限设置基于角色的安全性。我正在尝试与 Spring-Security 一起执行此操作。
我不想设置 ACL,因为这对我的要求来说似乎有点过头了。
我只想拥有本 article 中所述的简单权限和角色. 不幸的是,这篇文章没有描述如何实现给定的解决方案。
有人已经尝试过这个并且可以为我指出正确的方向吗?也许还有另一个描述实现的博客条目?
非常感谢。
最佳答案
我是相关文章的作者。
毫无疑问,有多种方法可以做到这一点,但我通常这样做的方法是实现一个了解角色和权限的自定义 UserDetails
。 Role
和 Permission
只是您编写的自定义类。 (没什么特别的——Role
有一个名称和一组 Permission
实例,而 Permission
有一个名称。)然后 getAuthorities ()
返回 GrantedAuthority
对象,如下所示:
PERM_CREATE_POST
、PERM_UPDATE_POST
、PERM_READ_POST
而不是返回类似的东西
ROLE_USER
, ROLE_MODERATOR
如果您的 UserDetails
实现具有 getRoles()
方法,则角色仍然可用。 (我建议有一个。)
理想情况下,您将角色分配给用户,相关权限会自动填写。这将涉及拥有一个知道如何执行该映射的自定义 UserDetailsService
,它所要做的就是从数据库中获取映射。 (有关架构,请参阅文章。)
然后您可以根据权限而不是角色来定义您的授权规则。
希望对您有所帮助。
关于java - 具有角色和权限的 Spring Security,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6357579/