Spring cloud微服务安全实战-4-4 OAuth2协议与微服务安全

Oauth2 解决了cookie和session的问题

搭建认证服务器





把依赖都复制进来






因为搭建的是Oauth的服务器,所以还需要导入oauth2

开始写代码


首先创建启动类




增加配置文件


端口设置为9090

认证服务器的配置



继承的父类。

这个就是授权服务器的配置的适配器的类

@Configuration表示声明为一个配置类
@EnableAuthorizationServer表示当前应用作为认证授权的服务器来存在的


覆盖适配器的三个configure方法

1.客户端应用让认证服务器知道有哪些应用会找他来要令牌。

客户端的详情服务的配置,在这里面配置客户端引用的详细信息。让认证服务器知道有哪些客户端应用 会来请求令牌。

注册客户端

在这里为了让大家看清楚,先写到内存里 ,后面再配置到数据库内持久化。
withClient是客户端的名称
secret相当于应用的密码。

所有的密码都要用passwordEncoder来加密,它本质上就是包装了我们之前介绍的工具。用一个随即的盐来做加密。把这个盐也编译到加密后的密文里面去。

这里我们注册了一个叫做orderApp的应用,密码是123456

scopes后面可以用来做ACL的权限控制,scopes这里就表示orderApp拥有什么样权限。为了简便这里就写两个read和write。
这里orderApp获取的所有权限的集合。

令牌的有效期 3600秒 就是一个小时。

resourceIds代表资源服务器的id。表示orderApp可以访问order-server这个资源服务器。
这里的配置就是表示能访问哪些资源服务器。
scopes表示的是能访问资源服务器能干什么。

授权方式,Oauth协议有四种授权类型,

再加一个 让订单服务可以访问 认证服务器。


这样我们就声明了两个资源服务器 一个orderApp 一个orderService.现在他们就是资源服务器可以认证的

结束

原文地址:https://www.cnblogs.com/wangjunwei/p/11934754.html