背景介绍
老的项目基于spring-boot-1.5.x、spring-security-oauth2-2.x实现的sso,在近期的安全漏洞扫描中发现如下2个漏洞:
漏洞
涉及jar
修复方案
Spring Framework JDK >= 9 远程代码执行漏洞(CVE-2022-22965)
spring-core-4.3.12.RELEASE.jar
升级官方安全版本 >= 5.3.18/5.2.20
Spring Security RegexRequestMatcher 认证绕过漏洞(CVE-2022-22978)
spring-security-core-4.2.3.RELEASE.jar
5.5.x 版本使用者建议升级至5.5.7及其以上;
5.6.x 版本使用者建议升级至5.6.4及其以上
然后笔者的同事将spring-boot升级到了2.5.14;将spring-security-oauth2升级到了2.1.0、RELEASE,这样一来,spring-core的版本被间接的升级到了5.3.20,spring-security-core版本变成了5.5.8(主要是spring-boot决定的)。
因为spring-boot-1.x和2.x之间的差距,同步的对项目依赖和代码做了微调。这里不再列出。不是今天的重点。
项目终于能成功启动了,但是一个致命的问题出来了,登录成功后,不能正确的回跳到redirect_uri指定的地址。这里如果你对spring-security-oauth2实现登录认证不熟悉的,可以参考