如何全面升级spring-boot-2.x及Spring-security-oauth2

本文主要讲述了在将老项目从spring-boot-1.5.x和spring-security-oauth2-2.x升级到新版本后遇到的登录回跳问题。在升级过程中,由于Spring Framework和Spring Security的版本变化,导致UsernamePasswordAuthenticationFilter未正常拦截登录请求。作者通过源码分析,找出问题所在并提出解决方案,即修改NotOAuthRequestMatcher的匹配规则,避免自定义请求被错误处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景介绍

老的项目基于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实现登录认证不熟悉的,可以参考使用Spring Security搭建一套OAuth 2.0架构

先说一下升级前是正

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值