简单的微服务feign之间调用授权/安全验证

不会写开头,就这样吧~

我想让使用这个验证组件开发者配置越少越好

所以我使用了注解 类似于springboot的自动装配类

创建@EnableSecurityAuth注解作用于在application类上

简单的微服务feign之间调用授权/安全验证_第1张图片

简单的微服务feign之间调用授权/安全验证_第2张图片

用@Import来注入SecurityAuthAutoConfiguration类

简单的微服务feign之间调用授权/安全验证_第3张图片

SecurityAuthAutoConfiguration是用来注入校验token的Filter

当配置文件中只需要生成token不需要校验则禁用过滤器

简单的微服务feign之间调用授权/安全验证_第4张图片

读配置文件中信息 只用uri uriList是uri根据“,”转换得到的用于做地址匹配

SecurityAuthFilter类 很简单 校验是否当前uri是否在uriList中,再从header中获取token交给tokentask去校验校验成功了就继续否则直接返回

简单的微服务feign之间调用授权/安全验证_第5张图片

接下来是tokentask类 一个定时任务不断的获取新的token,然后本地保存远程存储保存一份,校验用远程的保存的token,使用用本地的token

也可以在refreshToken中连接统一的auth2.0得到token保存保存到本地,check方法调用auth2的校验

简单的微服务feign之间调用授权/安全验证_第6张图片

简单的微服务feign之间调用授权/安全验证_第7张图片

简单的微服务feign之间调用授权/安全验证_第8张图片

整个流程 项目启动 跑一个定时器 不断获取(创建)新的token,本地和远端各存一份,发送请求用本地的token,校验token就检查远端是否存在。

SecurityAuthAutoConfiguration用@ComponentScan主要是为了加载定时任务tokenTask

部分代码文件

https://gitee.com/sourny/springcloud-simple-security-auth

你可能感兴趣的:(java,SpringCloud,spring)