远程 调用Spring Security来申请令牌,然后把申请到令牌存储到redis里面
cookieMaxAge: ‐1 -1表示浏览器一关闭cookie就失效。
测试远程申请令牌
TestClient
注入RestTemplate,来实现远程调用
令牌请求的地址是40400局势当前auth项目的端口。
认证服务最终会把自己注册到eureka
所以远程调用,建议从eureka中来拿地址。注入LoadBalancerClient,这是客户端负载均衡器,用来请求eureka拿到请求列表,从中选择一个地址
LoadBalancerClient拿到ServiceInstance。ServiceInstance就是一个微服务的实例
uri就是服务的地址
拼接出来最终的地址
调用restTemplae里面的方法
HttpEntity里面有个方法可以设置body也可以设置header
定义header
可以看到header其实就是一个Map的接口
找到MutiValueMap的实现类 Ctrl+T
看postman里面我们接口的定义里面 header需要的值是什么
定义私有方法获取HttpBasic串
主方法调用
定义body
打印最终令牌的内容
测试
认证服务启动后就会把自己注册到eureka里面
从服务中拿到了注册的服务地址
httpBasic的码
发起请求拿到数据
报错400错误
特殊处理
重写这个方法
得到reponse的代码。代码不等于400和401 再报错。 意思就是400和401正常返回 不要报错。
启动服务测试,正常返回了错误信息。