Spring Security 7.0 の新機能
Spring Security 7.0 には、いくつかの新機能があります。以下はリリースのハイライトです。また、各機能とバグ修正の詳細なリストについては、リリースノート [GitHub] (英語) を参照してください。
削除
メジャーリリースであるため、Spring Security 7 では非推奨の API がいくつか削除されています。以降の各セクションでは、特に注目すべき削除内容と、そのモジュールの新機能について説明します。
モジュール
Spring Security Kerberos 拡張 [GitHub] (英語) は現在 Spring Security の一部です。詳細はリファレンスの Kerberos セクションを参照してください。
Spring Authorization Server [GitHub] (英語) は現在 Spring Security の一部です。詳細はリファレンスの OAuth 2.0 認可サーバーセクションを参照してください。
コア
多要素認証のサポートを追加
AuthorizationManager#checkを削除してAuthorizationManager#authorizeに変更しましたAdded
AllAuthoritiesAuthorizationManager(Javadoc) andAllAuthoritiesReactiveAuthorizationManager(Javadoc) along with corresponding methods for AuthorizingHttpServletRequestsand method security expressions.Added
AuthorizationManagerFactoryfor creatingAuthorizationManagerinstances in request-based and method-based authorization componentsAuthenticationインスタンスの変異とマージのためのAuthentication.Builder(Javadoc) を追加しましたアクセス API (
AccessDecisionManager、AccessDecisionVoterなど) を新しいモジュールspring-security-accessに移動しました
構成
ラムダメソッドの使用を優先して、
HttpSecurityDSL からand()を削除しました。authorizeRequestsを削除してauthorizeHttpRequestsに変更しましたauthorizeRequestsの簡略化された式移行SPA ベースの CSRF 設定のサポートを追加しました
Added support for binding missing authorities to authentication mechanisms (Javadoc) .
- Java
http.csrf((csrf) -> csrf.spa());
暗号
一般的なハッシュアルゴリズムの代替実装を提供する Password4j ベースのパスワードエンコーダーを追加しました。
Argon2Password4jPasswordEncoder- Argon2BcryptPassword4jPasswordEncoder- BCryptScryptPassword4jPasswordEncoder- SCryptPbkdf2Password4jPasswordEncoder- PBKDF2BalloonHashingPassword4jPasswordEncoder- Balloon Hashing
OAuth 2.0
パスワード付与のサポートを削除しました
HTTP サービスクライアントに OAuth2 サポートを追加しました
NimbusJwtDecoderにカスタムJwkSourceのサポートを追加し、Nimbus のJwkSourceBuilderAPI の使用を可能にしました。NimbusJwtEncoderのビルダーを追加しました。EC または RSA キーペアまたは秘密鍵の指定をサポートしますAdded support for
@ClientRegistrationIdat the type level, eliminating the need for method level repetitionOAuth 2.0 Dynamic Registration Protocol [GitHub] (英語) のサポートを追加
OAuth 2.0 認可サーバーで PKCE by default [GitHub] (英語) を有効にする
SAML 2.0
AssertingPartyDetailsクラスに基づく API メソッドを削除し、AssertingPartyMetadataインターフェースを採用しました。Removed GET request support from
Saml2AuthenticationTokenConverterAdded JDBC-based
AssertingPartyMetadataRepositoryMade so that SLO still returns
<saml2:LogoutResponse>even when validation failsRemoved Open SAML 4 support; applications should migrate to Open SAML 5
Web
Removed
MvcRequestMatcherandAntPathRequestMatcherin favor ofPathPatternRequestMatcherAdded support for propagating exceptions in Authorized proxies through Spring MVC controllers
Spring MVC 型の承認済みオブジェクトのサポートを追加しました
Added support to Default Login Page to show factors based on
factor.typeandfactor.reasonparametersChanged LoginUrlAuthenticationEntryPoint to favor relative redirects by default