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.security.jwt.crypto.sign.MacSigner 支持使用短密碼的 HMACSHA256 簽名算法,NimbusReactiveJwtDecoder 不支持短密碼。