springcloudgateway+oauth2实现⽹关统⼀权限认证
Tips
1. 由于 spring cloud gateway 是基于 WebFlux 框架实现的,该⽹关作为资源服务器时不能使⽤ @EnableResourceServer 注解,需要使
springboot结构⽤ @EnableWebFluxSecurity 注解来配置安全过滤链。
2. 在 springboot 2.2 之前的版本中,安全框架对应的是 spring-security 5.14,该版本只实现了基于 id token (jwk) 的认证,⽽我当前项⽬中的认证服务组件是基于 org.springframework.cloud:spring-cloud-starter-oauth2 框架开发,使⽤的是秘钥签名的 access token,所以⽹关服务组件需要使⽤ springboot 2.2 + spring security 5.2 来处理 jws。
3. 现有项⽬使⽤了 gradle 构建,是⼀个多模块的结构,其中主模块引⼊了 2.1.2.RELEASE 版本的 org.springframework.boot 插件,⽤来确保各模块中 spring 组件的版本统⼀,此时⼦模块是⽆法通过修改插件版本号或重新引⼊插件来改变模块中 springboot 的版本,所以⽹关模块想⽤要引⼊ springboot 2.2 的话,就得脱离主模块,或者将插件引⼊的操作直接下放到各个⼦模块的构建过程中。
4. org.springframework.cloud:spring-cloud-starter-oauth2 中 org.springframework.pto.sig
n.MacSigner ⽀持使⽤短密码的 HMACSHA256 签名算法,NimbusReactiveJwtDecoder 不⽀持短密码。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。