Spring Security 7.1.0-M1 近期正式与开发者见面。这一版本虽然并非颠覆性的大版本迭代,但其中几项关键改进依然值得关注——特别是在编码契约层面的收紧,以及构建链路的现代化升级方面。
先来看新增功能中最直观的变化:PasswordEncoder#encode 方法现在拥有了明确的空值契约(#18334)。这听起来偏向底层技术细节,但实际意义在于:今后当你调用 encode 方法时,若传入参数或返回值为 null,编译器层面便可提前感知异常风险,而无需等到运行时才发生崩溃。此外,OneTimeTokenAuthenticationToken 如今引入了 Jackson Mixin 支持(#18096),这意味着在进行序列化处理时,可以减少大量自定义配置的工作量。
文档层面的清理工作也在同步推进。授权相关文档中那些已经废弃的“check”表述被统一替换(#18471),同时 spring-security-oauth2-client 与 spring-security-oauth2-core 模块中的 Ja vadoc 警告及编译警告也被一并清除(#18483、#18482)。
构建环境同样向前迈出了一步:升级至 JDK 25,但字节码目标依然保持在 Ja va 17,因此兼容性方面无需担忧(#18512)。还有一项细微但关键的调整——用 DefaultParameterNameDiscoverer#getSharedInstance() 替代了原有的实例化方式(#18484),在多线程环境下能够显著减少不必要的对象创建开销。
在 Bug 修复层面,若干小问题得到有效处理:补充了缺失的 @NullMarked 注解(#18514),使空值安全性更加完备;修正了 OAuth2AuthorizationRequestRedirectFilter 构造函数的单元测试逻辑(#18507);清理了文档中重复出现的 use-authorization-manager 配置说明(#18478);同时修复了集合与数组类型在空值处理方面的潜在异常(#18511)。
依赖版本也遵循惯例进行了滚动升级:logback-classic 从 1.5.24 更新至 1.5.25,reactor-bom 升级到 2025.0.2,spring-framework-bom 升至 7.0.3,spring-data-bom 更新为 2025.1.2,此外 JaCoCo 升级到 0.8.14,Gradle 升至 9.2.1,Kotlin 升级至 2.3.0。这些更新多数属于常规跟进,但 Spring Framework 从快照版本走向正式版 7.0.3,意味着下游依赖的稳定性进一步增强。
总体来看,7.1.0-M1 属于一次打磨性质的里程碑版本,其中对空值安全性的强化是最大亮点,项目团队也在持续清理技术债务并推进构建现代化。如果你正在使用 Spring Security 7 系列,这个 Milestone 版本值得拉下来进行测试验证。
