1. 前言
对于受限的访问资源,并不是对所有认证通过的用户开放的。比如 A 用户的角色是会计,那么他就可以访问财务相关的资源。B 用户是人事,那么他只能访问人事相关的资源。我们在 一文中也对基于角色的访问控制的相关概念进行了探讨。在实际开发中我们如何对资源进行角色粒度的管控呢?今天我来告诉你 Spring Security 是如何来解决这个问题的。
2. 将角色写入 UserDetails
我们使用 UserDetailsService
加载 UserDetails
时也会把用户的 GrantedAuthority
权限集写入其中。你可以将角色持久化并在这个点进行注入然后配置访问策略,后续的问题交给 Spring Security 。
3. 在 HttpSecurity 中进行配置角色访问控制
我们可以通过配置 WebSecurityConfigurerAdapter
中的 HttpSecurity
来控制接口的角色访问。
3.1 通过判断用户是否持有角色来进行访问控制
httpSecurity.authori