Spring Security 实战内容:基于配置的接口角色访问控制

本文介绍了如何在Spring Security中实现基于角色的接口访问控制。通过将角色信息写入UserDetails,然后在HttpSecurity配置中使用hasRole和hasAnyRole方法进行权限判断,控制不同角色对特定接口的访问。同时,讲解了匿名访问、开放请求的配置方法,以及permitAll和anonymous的区别。
摘要由CSDN通过智能技术生成

在这里插入图片描述

1. 前言

对于受限的访问资源,并不是对所有认证通过的用户开放的。比如 A 用户的角色是会计,那么他就可以访问财务相关的资源。B 用户是人事,那么他只能访问人事相关的资源。我们在 一文中也对基于角色的访问控制的相关概念进行了探讨。在实际开发中我们如何对资源进行角色粒度的管控呢?今天我来告诉你 Spring Security 是如何来解决这个问题的。

2. 将角色写入 UserDetails

我们使用 UserDetailsService 加载 UserDetails 时也会把用户的 GrantedAuthority 权限集写入其中。你可以将角色持久化并在这个点进行注入然后配置访问策略,后续的问题交给 Spring Security

3. 在 HttpSecurity 中进行配置角色访问控制

我们可以通过配置 WebSecurityConfigurerAdapter 中的 HttpSecurity 来控制接口的角色访问。

3.1 通过判断用户是否持有角色来进行访问控制

httpSecurity.authori

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值