若有收获,请记得分享和转发哦
本篇文章介绍一下OAuth2.0相关的知识点,并且手把手带大家搭建一个认证授权中心、资源服务进行OAuth2.0四种授权模式的验证,案例源码详细,一梭子带大家了解清楚。
本篇文章的案例源码项目架构为:Spring Boot + Spring Cloud Alibaba + Spring Security 。
文章目录如下:
![c7bf7fb3e214f7d97c71a859ae647583.png](https://i-blog.csdnimg.cn/blog_migrate/58b0fa0827671885e2cf10ebde94d62b.png)
为什么需要OAuth2.0?
编码永远都是为了解决生产中的问题,想要理解为什么需要OAuth2,当然要从实际生活出发。
举个例子:小区的业主点了一份外卖,但是小区的门禁系统不给外卖人员进入,此时想要外卖员进入只能业主下来开门或者告知门禁的密码。
密码告知外卖员岂不是每次都能凭密码进入小区了,这明显造成了安全隐患。
那么有没有一种方案:既能不泄露密码,也能让外卖小哥进入呢?
“注意:远程校验令牌存在性能问题,但是后续使用JWT令牌则本地即可进行校验,不必远程校验了。
”
4、配置客户端唯一id和令牌校验服务
上文说到客户端有一个唯一标识,因此需要配置上,代码如下:
![3c087000d33c6944abbce7c2258fed4a.png](https://i-blog.csdnimg.cn/blog_migrate/5066a3bf2305b7b67b26ad38278d204e.png)
5、配置security的安全机制
上文在认证中心的第6步配置客户端详情那里,有一行代码.scopes("all")
则是指定了客户端的权限,资源服务可以根据这个scope进行url的拦截。
拦截方式如下:
.access("#oauth2.hasScope('')")
详细配置代码如下:
![8497f5b54ccdf31b6d11e727f3d7e0bf.png](https://i-blog.csdnimg.cn/blog_migrate/976f79c7c7774fe512353a2a36d52a62.png)
这里陈某配置了所有路径都需要all的权限。
6、新建测试接口
新建了两个接口,如下: