SpringSecurity微服务实战之公共模块详解
前言
在项目中安全框架是必不可少的,在微服务架构中更是尤为重要,我们项目中将安全模块单独抽离了一个公共模块出来,因为在我的项目架构中 需要用到的SpringSecurity 至少有三个地方 boss服务 admin服务 user服务(saas)模式的一个微服务架构
模块结构
主要分为 base服务(提供数据,可以部署多份进行负载均衡) boss模块 admin模块 gateway模块 以及公共模块其中就包含我们今天的主角 安全模块。
我们在TokenLoginFilter
中继承 AbstractAuthenticationProcessingFilter
抽象类 重写 attemptAuthentication方法 在里面分别指定验证器
其中TenantDetailsAuthenticationProvider
租户验证器(admin) 和UsernamePasswordAuthenticationProvider
平台验证器(boss)
这里当然还可以再加其他的验证器,比如后面如果还有app的话就可以在配置一个专门来做app端权限验证的验证器。
下面我们看看令牌的续期是怎么实现的: 令牌是由jwt生成 和 redis 配合使用,每一次亲求进来检查token是否合法的同时校验一下token的剩余时间是否大于一个阈值,如果小于阈值我们进行reids 中的令牌刷新时间让用户无感知续约。
在访问过滤器中进行校验就可以了,这样就可以做到用户无感知令牌续约。
安全验证模块目前是再每个服务上面引入使用,后面会考虑在网关层做鉴权处理。
最后贴一下 WebSecurityConfigBugVip
这个配置类
以上就是SpringSecurity微服务实战之公共模块详解的详细内容,更多关于SpringSecurity微服务公共模块的资料请关注编程学习网其它相关文章!