作者:粉奈訫 | 来源:互联网 | 2023-09-16 14:23
下面要完成 5、6两个步骤3.3.4资源服务授权3.3.4.1资源服务授权流程资源服务拥有要访问的受保护资源,客户端携带令牌访问资源服务,如果令牌合法则可成功访问资源服务中的资源,
下面要完成 5、6两个步骤
3.3.4 资源服务授权
3.3.4.1 资源服务授权流程
资源服务拥有要访问的受保护资源,客户端携带令牌访问资源服务,如果令牌合法则可成功访问资源服务中的资
源,如下图:
上图的业务流程如下:
1、客户端请求认证服务申请令牌
2、认证服务生成令牌
认证服务采用非对称加密算法,使用私钥生成令牌。
3、客户端携带令牌访问资源服务
客户端在Http header 中添加: Authorization:Bearer 令牌。
4、资源服务请求认证服务校验令牌的有效性
资源服务接收到令牌,使用公钥校验令牌的合法性。
5、令牌有效,资源服务向客户端响应资源信息
xc.keystore里面就包含了私钥和公钥
使用课程服务来做出测试 course
课程的接口在没有接入认证服务之前,服务是可以随便访问的。例如下面打开一个课程的图片列表。
在给的资料里面 有publickey.txt
复制到课程的微服务的resources目录下
以后所有的微服务要借入认证都是这么做
创建配置类
在config包下创建ResourceServerConfig类
@Configuration注解相当于Spring的Bean注解
@EnableResourceServer 标识当前功能是一个资源服务
@EnableGlobalMethodSecurity //激活方法上的PreAuthorize注解
PreAuthorize注解在讲授权的时候再讲
重启course服务,测试
再次访问刚才的服务 发现无法正常访问了。
提示访问资源必须认证。
用postman带令牌测试
可以正常访问到数据
去掉令牌再访问。所以必须要携带令牌才可以。
以上就完成了资源服务的授权测试