跳转至

spring-security 6.4.0-M4

为什么要使用spring-security

在当今数字化时代,安全性已成为每个开发者心中挥之不去的阴影。想象一下,你的应用程序被黑客攻击,用户数据泄露,品牌声誉一落千丈。面对这样的威胁,如何保护你的应用程序?Spring Security应运而生,它不仅提供了强大的安全框架,还能灵活地适应各种需求。无论是简单的身份验证,还是复杂的权限管理,Spring Security都能为你提供坚实的后盾,让你在安全的道路上无畏前行。

spring-security是什么

Spring Security是一个功能强大的安全框架,专为Java应用程序设计。它提供了认证和授权的解决方案,帮助开发者轻松实现安全控制。通过灵活的配置和强大的扩展性,Spring Security能够保护Web应用程序、RESTful服务以及微服务架构,确保用户数据的安全性。

入门示例

想象一下,你正在开发一个在线购物平台。用户需要注册、登录并查看自己的订单。使用Spring Security,你可以轻松实现这些功能。首先,配置Spring Security以处理用户的注册和登录请求。接着,利用其内置的身份验证机制,确保只有经过验证的用户才能访问订单页面。通过简单的配置,你就能为用户提供安全的购物体验,保护他们的个人信息不被泄露。

spring-security 6.4.0-M4版本更新了什么

在6.4.0-M4版本中,Spring Security引入了多个新特性和改进,包括抽象常用代码、添加安全提示注册API、支持一次性令牌登录、改进XML配置中的默认资源过滤器等。此外,多个依赖项也得到了升级,确保框架的稳定性和安全性。

更新日志

⭐ 新特性

  • 抽象了 UnmodifiableListDeserializerUnmodifiableSetDeserializer 中的公共代码。
  • 添加了注册安全提示的API。
  • CookieRequestCache 添加了cookie自定义器。
  • 在XML配置中添加了 DefaultResourcesFilter
  • 支持Kotlin DSL中的一次性令牌登录。
  • 添加了RestClient实现。
  • 添加了一次性令牌登录的支持。
  • 缓存注解查找。
  • 考虑为 OAuth2AccessTokenResponseClient 添加RestClient实现。
  • 弃用默认的 OAuth2AccessTokenResponseClient,转而使用基于RestClient的实现。
  • 文档化如何配置一次性令牌的TTL。
  • 启用ReactiveMethodSecurity支持自定义MethodSecurityExpressionHandler。
  • 修复在RoleHierarchy Builder中添加更多隐含角色的问题。
  • 在SessionInformationExpiredEvent中包含FilterChain,以允许继续请求。
  • 使OidcSessionRegistry在Kotlin中可配置。
  • 改进Oidc注销功能。
  • 在OIDC配置中选择OidcSessionRegistry bean。
  • 优化一次性令牌登录。
  • 为在Pre/PostAuthorize表达式中使用的Bean提供运行时提示。
  • 在使用Jackson序列化授权代理对象时,移除对 @JsonSerialize 的需求。
  • 移除默认UI中的尾随空格。
  • 从专用过滤器提供静态资源(JS、CSS)。
  • 当AuthorizationResult可用时抛出AuthorizationDeniedException。
  • 在默认UI中使用HTML模板。

🪲 Bug修复

  • 修正logout.adoc中的标题。
  • 禁用自定义AuthenticationManager上的凭据擦除未生效。
  • 修复全局身份验证配置中的getBeansWithName。
  • 修复在合成方法中未传递变量targetClassToUse的问题。
  • 修复Servlet API集成文档中的拼写错误。
  • 修复Servlet和Reactive可观察性文档中的拼写错误。
  • 在DefaultLoginPageGeneratingFilter中硬编码ott-username输入名称。
  • 修复无法加载模块org.springframework.security.cas.jackson2.CasJackson2Module的问题。

🔨 依赖升级

  • 将ch.qos.logback:logback-classic从1.5.7升级到1.5.8。
  • 将com.gradle.develocity从3.17.6升级到3.18。
  • 将io.micrometer:micrometer-observation从1.13.3升级到1.13.4。
  • 将io.projectreactor:reactor-bom从2023.0.9升级到2023.0.10。
  • 将io.spring.develocity.conventions从0.0.20升级到0.0.21。
  • 将jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api从3.0.1升级到3.0.2。
  • 将org-eclipse-jetty从11.0.23升级到11.0.24。
  • 将org.jetbrains.kotlinx:kotlinx-coroutines-bom从1.8.1升级到1.9.0。
  • 将org.jfrog.buildinfo:build-info-extractor-gradle从4.33.21升级到4.33.22。
  • 将org.mockito:mockito-bom从5.12.0升级到5.13.0。
  • 将org.seleniumhq.selenium:selenium-java从4.23.1升级到4.24.0。
  • 将org.springframework.data:spring-data-bom从2024.0.3升级到2024.0.4。
  • 将org.springframework:spring-framework-bom从6.2.0-M7升级到6.2.0-RC1。

🔩 构建更新

  • 将@springio/asciidoctor-extensions从1.0.0-alpha.12升级到1.0.0-alpha.13。
  • 检查样本是否停留在旧的快照依赖上。
  • 更新Spring Boot链接。

总结

在6.4.0-M4版本中,Spring Security不仅引入了多项新特性和改进,还修复了多个bug,确保了框架的稳定性和安全性。通过这些更新,开发者可以更轻松地实现安全控制,提升应用程序的安全性。