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.现在他们就是资源服务器可以认的
结束