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

Oauth2 解决了cookie和session的问题
Spring cloud微服务安全实战-4-4 OAuth2协议与微服务安全

搭建认证服务器

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

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

把依赖都复制进来
Spring cloud微服务安全实战-4-4 OAuth2协议与微服务安全


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

Spring cloud微服务安全实战-4-4 OAuth2协议与微服务安全
因为搭建的是Oauth的服务器,所以还需要导入oauth2
Spring cloud微服务安全实战-4-4 OAuth2协议与微服务安全

开始写代码

Spring cloud微服务安全实战-4-4 OAuth2协议与微服务安全
首先创建启动类
Spring cloud微服务安全实战-4-4 OAuth2协议与微服务安全

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

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

增加配置文件

Spring cloud微服务安全实战-4-4 OAuth2协议与微服务安全
端口设置为9090
Spring cloud微服务安全实战-4-4 OAuth2协议与微服务安全
认证服务器的配置


Spring cloud微服务安全实战-4-4 OAuth2协议与微服务安全
继承的父类。
Spring cloud微服务安全实战-4-4 OAuth2协议与微服务安全
这个就是授权服务器的配置的适配器的类
Spring cloud微服务安全实战-4-4 OAuth2协议与微服务安全
@Configuration表示声明为一个配置类
@EnableAuthorizationServer表示当前应用作为认证授权的服务器来存在的
Spring cloud微服务安全实战-4-4 OAuth2协议与微服务安全

覆盖适配器的三个configure方法
Spring cloud微服务安全实战-4-4 OAuth2协议与微服务安全
1.客户端应用让认证服务器知道有哪些应用会找他来要令牌。
Spring cloud微服务安全实战-4-4 OAuth2协议与微服务安全
客户端的详情服务的配置,在这里面配置客户端引用的详细信息。让认证服务器知道有哪些客户端应用 会来请求令牌。
Spring cloud微服务安全实战-4-4 OAuth2协议与微服务安全

注册客户端

在这里为了让大家看清楚,先写到内存里 ,后面再配置到数据库内持久化。
withClient是客户端的名称
secret相当于应用的密码。
Spring cloud微服务安全实战-4-4 OAuth2协议与微服务安全
所有的密码都要用passwordEncoder来加密,它本质上就是包装了我们之前介绍的工具。用一个随即的盐来做加密。把这个盐也编译到加密后的密文里面去。
Spring cloud微服务安全实战-4-4 OAuth2协议与微服务安全
这里我们注册了一个叫做orderApp的应用,密码是123456
Spring cloud微服务安全实战-4-4 OAuth2协议与微服务安全
scopes后面可以用来做ACL的权限控制,scopes这里就表示orderApp拥有什么样权限。为了简便这里就写两个read和write。
这里orderApp获取的所有权限的集合。
Spring cloud微服务安全实战-4-4 OAuth2协议与微服务安全
令牌的有效期 3600秒 就是一个小时。
Spring cloud微服务安全实战-4-4 OAuth2协议与微服务安全
resourceIds代表资源服务器的id。表示orderApp可以访问order-server这个资源服务器。
这里的配置就是表示能访问哪些资源服务器。
scopes表示的是能访问资源服务器能干什么。
Spring cloud微服务安全实战-4-4 OAuth2协议与微服务安全
授权方式,Oauth协议有四种授权类型,
Spring cloud微服务安全实战-4-4 OAuth2协议与微服务安全
再加一个 让订单服务可以访问 认证服务器。
Spring cloud微服务安全实战-4-4 OAuth2协议与微服务安全

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

结束

 

上一篇:Spring Security OAuth2+JWT授权认证服务


下一篇:centos配置用户级别的jdk的环境变量