Web アプリケーションセキュリティ

<debug>

Spring Security デバッグインフラストラクチャを有効にします。これにより、人間が読める(複数行の)デバッグ情報が提供され、セキュリティフィルターに送られるリクエストを監視できます。これには、リクエストパラメーターやヘッダーなどの機密情報が含まれる場合があり、開発環境でのみ使用する必要があります。

<http>

アプリケーション内で <http> 要素を使用すると、"springSecurityFilterChain" という名前の FilterChainProxy Bean が作成され、要素内の構成を使用して FilterChainProxy 内にフィルターチェーンが構築されます。Spring Security 3.1 以降では、追加の http 要素を使用して、追加のフィルターチェーン [ 1 ] を追加できます。これは、web.xml からのマッピングを設定する方法です。一部のコアフィルターは常にフィルターチェーンに作成され、その他のフィルターは、存在する属性と子要素に応じてスタックに追加されます。標準フィルターの位置は固定されており (名前空間の概要のフィルター順序テーブルを参照)、以前のバージョンのフレームワークでユーザーがフィルターチェーンを FilterChainProxy Bean で明示的に構成する必要があった場合によく発生していたエラーの原因がなくなりました。もちろん、構成を完全に制御する必要がある場合は、これを実行できます。

AuthenticationManager への参照を必要とするすべてのフィルターには、名前空間構成によって作成された内部インスタンスが自動的に挿入されます。

各 <http> 名前空間ブロックは、常に SecurityContextPersistenceFilterExceptionTranslationFilter および FilterSecurityInterceptor を作成します。これらは修正されており、代替に置き換えることはできません。

<http> の属性

<http> 要素の属性は、コアフィルターの一部のプロパティを制御します。

  • use-authorization- manager SecurityMetadataSource の代わりに AuthorizationManager API を使用します (デフォルトは true)

  • access-decision-manager-ref <intercept-url> 要素から派生する代わりに、この AuthorizationManager を使用します

  • access-decision-manager-ref HTTP リクエストの承認に使用される AccessDecisionManager 実装の ID を指定するオプションの属性。デフォルトでは、AffirmativeBased 実装は RoleVoter および AuthenticatedVoter で使用されます。

  • authentication-manager-ref この http 要素によって作成された FilterChain に使用される AuthenticationManager への参照。

  • 観察レジストリ参照 FilterChain および関連コンポーネントに使用される ObservationRegistry への参照

  • auto-config ログインフォーム、基本認証、ログアウトサービスを自動的に登録します。"true" に設定すると、これらの機能がすべて追加されます(ただし、それぞれの要素を指定することで、それぞれの構成をカスタマイズできます)。指定しない場合、デフォルトは "false" です。この属性の使用は推奨されません。混乱を避けるために、代わりに明示的な構成要素を使用してください。

  • create-session Spring Security クラスによって HTTP セッションが作成される際の先行さを制御します。オプションが含まれます:

    • always - Spring Security は、セッションが存在しない場合、積極的にセッションを作成します。

    • ifRequired - Spring Security は、セッションが必要な場合にのみセッションを作成します(デフォルト値)。

    • never - Spring Security はセッションを作成しませんが、アプリケーションが作成した場合はセッションを使用します。

    • stateless - Spring Security はセッションを作成せず、Spring Authentication を取得するためのセッションを無視します。

  • disable-url-rewriting セッション ID がアプリケーションの URL に追加されないようにします。この属性が true に設定されている場合、クライアントは Cookie を使用する必要があります。デフォルトは true です。

  • entry-point-ref 通常、使用される AuthenticationEntryPoint は、設定されている認証メカニズムに応じて設定されます。この属性により、認証プロセスを開始するカスタマイズされた AuthenticationEntryPoint Bean を定義することにより、この動作をオーバーライドできます。

  • jaas-api-provision 使用可能な場合、JaasApiIntegrationFilter Bean をスタックに追加することによって実装される JaasAuthenticationToken から取得した Subject としてリクエストを実行します。デフォルトは false です。

  • name Bean 識別子。コンテキストの他の場所で Bean を参照するために使用されます。

  • once-per-request FilterSecurityInterceptor の observeOncePerRequest プロパティに対応します。デフォルトは false です。

  • filter-all-dispatcher-types AuthorizationFilter の shouldFilterAllDispatcherTypes プロパティに対応します。use-authorization-manager=false の場合は機能しません。デフォルトは true です。

  • pattern http 要素のパターンを定義すると、定義するフィルターのリストを介してフィルターされるリクエストが制御されます。解釈は、構成された request-matcher に依存します。パターンが定義されていない場合、すべてのリクエストが一致するため、最も具体的なパターンを最初に宣言する必要があります。

  • realm 基本認証に使用されるレルム名を設定します(有効な場合)。BasicAuthenticationEntryPoint の realmName プロパティに対応します。

  • request-matcher FilterChainProxy で使用される RequestMatcher 戦略と、受信リクエストを照合するために intercept-url によって作成される Bean を定義します。オプションは現在、それぞれ Spring MVC、ant、正規表現、大文字と小文字を区別しない正規表現の mvcantregexciRegex です。patternmethod、および servlet-path 属性を使用して、intercept-url 要素ごとに個別のインスタンスが作成されます。Ant パスは AntPathRequestMatcher を使用して一致し、正規表現は RegexRequestMatcher を使用して一致し、Spring MVC パス一致の場合は MvcRequestMatcher が使用されます。マッチングがどのように実行されるかについての詳細は、これらのクラスの Javadoc を参照してください。Spring MVC がクラスパスに存在する場合、MVC がデフォルトの戦略です。存在しない場合、Ant パスが使用されます。

  • request-matcher-ref この FilterChain を使用するかどうかを決定する RequestMatcher を実装する Bean への参照。これは pattern のより強力な代替手段です。

  • security この属性を none に設定することにより、リクエストパターンを空のフィルターチェーンにマップできます。セキュリティは適用されず、Spring Security の機能は使用できません。

  • security-context-repository-ref カスタム SecurityContextHolderStrategy を SecurityContextPersistenceFilterSecurityContextHolderFilterBasicAuthenticationFilterUsernamePasswordAuthenticationFilterExceptionTranslationFilterLogoutFilter などに挿入できるようにします。

  • security-context-explicit-save true の場合、SecurityContextPersistenceFilter の代わりに SecurityContextHolderFilter を使用します。明示的な保存が必要

  • security-context-repository-ref カスタム SecurityContextRepository の SecurityContextPersistenceFilter への注入を許可します。

  • servlet-api-provision SecurityContextHolderAwareRequestFilter Bean をスタックに追加することで実装される isUserInRole() や getPrincipal() などの HttpServletRequest セキュリティメソッドのバージョンを提供します。デフォルトは true です。

  • use-expressions 式 ベースのアクセス制御の章に従って、access 属性で EL 式を有効にします。デフォルト値は true です。

<access-denied-handler>

この要素を使用すると、エラーページ属性を使用して ExceptionTranslationFilter で使用されるデフォルトの AccessDeniedHandler の errorPage プロパティを設定したり、ref 属性を使用して独自の実装を提供したりできます。これについては、ExceptionTranslationFilter のセクションで詳しく説明します。

<access-denied-handler> の親要素

<access-denied-handler> の属性

  • error-page アクセスする権限のないページをリクエストした場合に、認証されたユーザーがリダイレクトされるアクセス拒否ページ。

  • ref 型 AccessDeniedHandler の Spring Bean への参照を定義します。

<cors>

この要素により、CorsFilter を構成できます。CorsFilter または CorsConfigurationSource が指定されておらず、Spring MVC がクラスパス上にある場合、HandlerMappingIntrospector が CorsConfigurationSource として使用されます。

<cors> 属性

<cors> 要素の属性は、headers 要素を制御します。

  • ref CorsFilter の Bean 名を指定するオプションの属性。

  • cors-configuration-source-ref XML 名前空間によって作成された CorsFilter に挿入される CorsConfigurationSource の Bean 名を指定するオプションの属性。

<cors> の親要素

<headers>

この要素を使用すると、追加の(セキュリティ)ヘッダーをレスポンスとともに送信するように構成できます。これにより、複数のヘッダーを簡単に構成でき、ヘッダー要素を介してカスタムヘッダーを設定することもできます。追加情報は、リファレンスのセキュリティヘッダーセクションにあります。

  • Cache-ControlPragmaExpires - cache-control 要素を使用して設定できます。これにより、ブラウザーが保護されたページをキャッシュしないようになります。

  • Strict-Transport-Security - hsts 要素を使用して設定できます。これにより、将来のリクエストに対してブラウザーが HTTPS を自動的にリクエストします。

  • X-Frame-Options - frame-options 要素を使用して設定できます。X-Frame-Options [Wikipedia] ヘッダーは、クリックジャック攻撃を防ぐために使用できます。

  • X-XSS-Protection - xss-protection 要素を使用して設定できます。X-XSS-Protection [Wikipedia] ヘッダーは、基本的な制御を行うためにブラウザーで使用できます。

  • X-Content-Type-Options - content-type-options 要素を使用して設定できます。X-Content-Type-Options (英語) ヘッダーは、Internet Explorer が宣言されたコンテンツ型からレスポンスを MIME スニッフィングすることを防ぎます。これは、拡張機能をダウンロードする場合、Google Chrome にも当てはまります。

  • Public-Key-Pinning または Public-Key-Pinning-Report-Only - hpkp 要素を使用して設定できます。これにより、HTTPS Web サイトは、誤って発行された証明書または不正な証明書を使用した攻撃者によるなりすましに抵抗できます。

  • Content-Security-Policy または Content-Security-Policy-Report-Only - content-security-policy エレメントを使用して設定できます。コンテンツセキュリティポリシー (CSP) [W3C] (英語) は、クロスサイトスクリプティング(XSS)などのコンテンツインジェクションの脆弱性を軽減するために Web アプリケーションが活用できるメカニズムです。

  • Referrer-Policy - referrer -policy 要素を使用して設定できます。リファラーポリシー [W3C] (英語) は、Web アプリケーションがリファラーフィールドを管理するために利用できるメカニズムです。リファラーフィールドには、ユーザーが最後にアクセスしたページが含まれます。

  • Feature-Policy - feature-policy エレメントを使用して設定できます。機能ポリシー (英語) は、Web 開発者がブラウザーの特定の API および Web 機能の動作を選択的に有効化、無効化、変更できるメカニズムです。

  • Cross-Origin-Opener-Policy - cross-origin-opener-policy 要素を使用して設定できます。Cross-Origin-Opener-Policy [Mozilla] は、トップレベルのドキュメントがクロスオリジンドキュメントとブラウジングコンテキストグループを共有しないようにするメカニズムです。

  • Cross-Origin-Embedder-Policy - cross-origin- embedder-policy 要素を使用して設定できます。Cross-Origin-Embedder-Policy [Mozilla] は、ドキュメントに明示的にアクセス許可を付与しないクロスオリジンリソースをドキュメントがロードしないようにするメカニズムです。

  • Cross-Origin-Resource-Policy - Cross-Origin-Resource-Policy [Mozilla] は、cross-origin-resource-policy 要素を使用して設定でき、ブラウザーが指定されたリソースへの no-cors cross-origin/cross-site リクエストをブロックするというリクエストを伝えるメカニズムです。

<headers> 属性

<headers> 要素の属性は、headers 要素を制御します。

  • defaults-disabled デフォルトの Spring Security の HTTP レスポンスヘッダーを無効にすることを指定するオプションの属性。デフォルトは false です(デフォルトのヘッダーが含まれます)。

  • disabled Spring Security の HTTP レスポンスヘッダーを無効にすることを指定するオプションの属性。デフォルトは false です(ヘッダーは有効です)。

<headers> の親要素

<cache-control>

Cache-ControlPragmaExpires ヘッダーを追加して、ブラウザーが保護されたページをキャッシュしないようにします。

<cache-control> の属性

  • disabled キャッシュ制御を無効にするかどうかを指定します。デフォルトは false。

<cache-control> の親要素

<hsts>

有効にすると、Strict-Transport-Security [IETF] (英語) ヘッダーが安全なリクエストのレスポンスに追加されます。これにより、サーバーは、将来のリクエストで HTTPS を自動的に使用するようブラウザーに指示できます。

<hsts> の属性

  • disabled Strict-Transport-Security を無効にするかどうかを指定します。デフォルトは false。

  • include-sub-domains サブドメインを含めるかどうかを指定します。デフォルトは true。

  • max-age-seconds ホストが既知の HSTS ホストと見なされる最大時間を指定します。デフォルトは 1 年。

  • request-matcher-ref ヘッダーを設定する必要があるかどうかを判断するために使用される RequestMatcher インスタンス。デフォルトは、HttpServletRequest.isSecure() が true の場合です。

  • preload プリロードを含めるかどうかを指定します。デフォルトは false。

<hsts> の親要素

<hpkp>

有効にすると、HTTP の公開鍵固定拡張 [IETF] (英語) ヘッダーが安全なリクエストのレスポンスに追加されます。これにより、HTTPS Web サイトは、誤って発行された証明書または不正な証明書を使用した攻撃者によるなりすましに抵抗できます。

<hpkp> の属性

  • disabled HTTP 公開鍵固定(HPKP)を無効にするかどうかを指定します。デフォルトは true。

  • include-sub-domains サブドメインを含めるかどうかを指定します。デフォルトは false。

  • max-age-seconds Public-Key-Pins ヘッダーの max-age ディレクティブの値を設定します。デフォルトは 60 日です。

  • report-only ブラウザーがピン検証の失敗のみを報告するかどうかを指定します。デフォルトは true。

  • report-uri ブラウザーがピン検証の失敗を報告する URI を指定します。

<hpkp> の親要素

<pins>

ピンのリスト

<pins> の子要素

<pin>

ピンは、値として base64 エンコード SPKI フィンガープリントを使用し、属性として暗号化ハッシュアルゴリズムを使用して指定されます

<pin> 属性

  • algorithm 暗号化ハッシュアルゴリズム。デフォルトは SHA256 です。

<pin> の親要素

<content-security-policy>

有効にすると、コンテンツセキュリティポリシー (CSP) [W3C] (英語) ヘッダーがレスポンスに追加されます。CSP は、クロスサイトスクリプティング(XSS)など、Web アプリケーションがコンテンツインジェクションの脆弱性を軽減するために活用できるメカニズムです。

<content-security-policy> の属性

  • policy-directives Content-Security-Policy ヘッダーのセキュリティポリシーディレクティブ、または report-only が true に設定されている場合、Content-Security-Policy-Report-Only ヘッダーが使用されます。

  • report-only true に設定すると、ポリシー違反のみを報告するために Content-Security-Policy-Report-Only ヘッダーが有効になります。デフォルトは false です。

<content-security-policy> の親要素

<referrer-policy>

有効にすると、リファラーポリシー [W3C] (英語) ヘッダーがレスポンスに追加されます。

<referrer-policy> の属性

  • policy Referrer-Policy ヘッダーのポリシー。デフォルトの「リファラーなし」。

<referrer-policy> の親要素

<feature-policy>

有効にすると、機能ポリシー (英語) ヘッダーがレスポンスに追加されます。

<feature-policy> の属性

  • policy-directives Feature-Policy ヘッダーのセキュリティポリシーディレクティブ。

<feature-policy> の親要素

<frame-options>

有効にすると、X-Frame-Options ヘッダー [IETF] (英語) がレスポンスに追加されます。これにより、新しいブラウザーはセキュリティチェックを行い、クリックジャック [Wikipedia] 攻撃を防ぐことができます。

<frame-options> 属性

  • 無効にすると、X-Frame-Options ヘッダーは含まれません。デフォルトは false。

  • ポリシー

    • DENY サイトは、フレームを表示しようとしているかどうかにかかわらず、フレームに表示できません。これは、frame-options-policy が指定されている場合のデフォルトです。

    • SAMEORIGIN ページは、ページ自体と同じ原点のフレームにのみ表示できます

    つまり、DENY を指定すると、他のサイトからロードされたときにフレーム内のページのロードが失敗するだけでなく、同じサイトからロードされたときにも失敗します。一方、SAMEORIGIN を指定した場合、フレームにページを含むサイトがページを提供しているサイトと同じである限り、フレームでページを使用できます。

<frame-options> の親要素

<permissions-policy>

権限 - ポリシーヘッダー (英語) をレスポンスに追加します。

<permissions-policy> 属性

  • Permissions-Policy ヘッダーの書き込みにポリシーポリシー値を

<permissions-policy> の親要素

<xss-protection>

X-XSS-Protection ヘッダー (英語) をレスポンスに追加して、型 1/ 反射型クロスサイトスクリプティング (XSS) [Wikipedia] 攻撃からの保護を支援します。これは決して XSS 攻撃に対する完全な保護ではありません!

<xss-protection> 属性

<xss-protection> の親要素

<content-type-options>

レスポンスに nosniff の値を持つ X-Content-Type-Options ヘッダーを追加します。これにより、IE8 + および Chrome 拡張の MIME スニッフィングが無効になります (英語)

<content-type-options> 属性

  • disabled コンテンツ型オプションを無効にするかどうかを指定します。デフォルトは false。

<content-type-options> の親要素

<cross-origin-embedder-policy>

有効にすると、Cross-Origin-Embedder-Policy [Mozilla] ヘッダーがレスポンスに追加されます。

<cross-origin-embedder-policy> 属性
  • ポリシー Cross-Origin-Embedder-Policy ヘッダーのポリシー。

<cross-origin-embedder-policy> の親要素

<cross-origin-opener-policy>

有効にすると、Cross-Origin-Opener-Policy [Mozilla] ヘッダーがレスポンスに追加されます。

<cross-origin-opener-policy> 属性
  • ポリシー Cross-Origin-Opener-Policy ヘッダーのポリシー。

<cross-origin-opener-policy> の親要素

<cross-origin-resource-policy>

有効にすると、Cross-Origin-Resource-Policy [Mozilla] ヘッダーがレスポンスに追加されます。

<cross-origin-resource-policy> 属性
  • ポリシー Cross-Origin-Resource-Policy ヘッダーのポリシー。

<cross-origin-resource-policy> の親要素

<header>

レスポンスにヘッダーを追加します。名前と値の両方を指定する必要があります。

<header-attributes> 属性

  • header-name ヘッダーの name

  • value 追加するヘッダーの value

  • ref HeaderWriter インターフェースのカスタム実装への参照。

<header> の親要素

<anonymous>

AnonymousAuthenticationFilter をスタックに追加し、AnonymousAuthenticationProvider を追加します。IS_AUTHENTICATED_ANONYMOUSLY 属性を使用している場合は必須。

<anonymous> の親要素

<anonymous> 属性

  • enabled デフォルトのネームスペースのセットアップでは、匿名の「認証」機能が自動的に有効になります。このプロパティを使用して無効にできます。

  • granted-authority 匿名リクエストに割り当てられるべき付与された権限。通常、これは匿名リクエストに特定のロールを割り当てるために使用され、その後、認可の決定に使用できます。設定されていない場合、デフォルトは ROLE_ANONYMOUS です。

  • key プロバイダーとフィルター間で共有されるキー。通常、これを設定する必要はありません。設定されていない場合、デフォルトで安全にランダムに生成された値になります。つまり、この値を設定すると、匿名機能を使用する際に、セキュアなランダム値が生成されるまでに時間がかかるため、起動時間が改善されます。

  • username 匿名リクエストに割り当てられるユーザー名。これにより、プリンシパルを識別できます。これは、ロギングおよび監査に重要な場合があります。設定しない場合、デフォルトは anonymousUser になります。

<csrf>

この要素は、クロスサイトリクエストフォージェリー (CSRF) [Wikipedia] 保護をアプリケーションに追加します。また、デフォルトの RequestCache を更新して、認証が成功したときにのみ "GET" リクエストを再生します。追加情報は、リファレンスのクロスサイトリクエストフォージェリ (CSRF) セクションにあります。

<csrf> の親要素

<csrf> の属性

  • disabled Spring Security の CSRF 保護を無効にすることを指定するオプションの属性。デフォルトは false です(CSRF 保護は有効です)。CSRF 保護を有効のままにしておくことを強くお勧めします。

  • token-repository-ref 使用する CsrfTokenRepository。デフォルトは HttpSessionCsrfTokenRepository です。

  • request-handler-ref 使用するオプションの CsrfTokenRequestHandler。デフォルトは CsrfTokenRequestAttributeHandler です。

  • request-matcher-ref CSRF を適用する必要があるかどうかを判断するために使用される RequestMatcher インスタンス。デフォルトは、"GET"、"TRACE"、"HEAD"、"OPTIONS" を除く任意の HTTP メソッドです。

<custom-filter>

この要素は、フィルターチェーンにフィルターを追加するために使用されます。追加の Bean は作成されませんが、アプリケーションコンテキストですでに定義されている型 jakarta.servlet.Filter の Bean を選択し、Spring Security によって維持されるフィルターチェーンの特定の位置に追加するために使用されます。詳細については、名前空間の章を参照してください。

<custom-filter> の親要素

<custom-filter> 属性

  • after チェーンにカスタムフィルターを配置する直後のフィルター。この機能は、独自のフィルターをセキュリティフィルターチェーンにミックスし、標準の Spring Security フィルターの知識がある上級ユーザーのみが必要とします。フィルター名は、特定の Spring Security 実装フィルターにマップされます。

  • before チェーンにカスタムフィルターを配置する直前のフィルター

  • position チェーンでカスタムフィルターを配置する明示的な位置。標準フィルターを交換する場合に使用します。

  • ref Filter を実装する Spring Bean への参照を定義します。

<expression-handler>

式ベースのアクセス制御が有効な場合に使用される SecurityExpressionHandler インスタンスを定義します。指定されていない場合、デフォルトの実装(ACL サポートなし)が使用されます。

<expression-handler> の属性

  • ref SecurityExpressionHandler を実装する Spring Bean への参照を定義します。

<form-login>

UsernamePasswordAuthenticationFilter をフィルタースタックに追加し、LoginUrlAuthenticationEntryPoint をアプリケーションコンテキストに追加して、オンデマンドで認証を提供するために使用されます。これは、他の名前空間で作成されたエントリポイントよりも常に優先されます。属性が指定されていない場合、ログインページは URL "/login" [ 2 ] で自動的に生成されます。動作は、<form-login> 属性を使用してカスタマイズできます。

<form-login> の親要素

<form-login> 属性

  • always-use-default-target true に設定されている場合、ユーザーはログインページへの到着方法に関係なく、常に default-target-url で指定された値から開始します。UsernamePasswordAuthenticationFilter の alwaysUseDefaultTargetUrl プロパティにマップします。デフォルト値は false です。

  • authentication-details-source-ref 認証フィルターによって使用される AuthenticationDetailsSource への参照

  • authentication-failure-handler-ref authentication-failure-url の代替として使用でき、認証失敗後のナビゲーションフローを完全に制御できます。値は、アプリケーションコンテキストの AuthenticationFailureHandler Bean の名前である必要があります。

  • authentication-failure-url UsernamePasswordAuthenticationFilter の authenticationFailureUrl プロパティにマップします。ログイン失敗時にブラウザーがリダイレクトされる URL を定義します。デフォルトは /login?error であり、これは自動ログインページジェネレーターによって自動的に処理され、エラーメッセージでログインページを再レンダリングします。

  • authentication-success-handler-ref これは default-target-url および always-use-default-target の代替として使用でき、認証が成功した後のナビゲーションフローを完全に制御できます。値は、アプリケーションコンテキストの AuthenticationSuccessHandler Bean の名前である必要があります。デフォルトでは、SavedRequestAwareAuthenticationSuccessHandler の実装が使用され、default-target-url が挿入されます。

  • default-target-url UsernamePasswordAuthenticationFilter の defaultTargetUrl プロパティにマップします。設定されていない場合、デフォルト値は "/" (アプリケーションルート)です。ユーザーは、ログイン後にこの URL に移動します。ただし、保護されたリソースにアクセスしようとしてログインを求められなかった場合、最初にリクエストされた URL に移動します。

  • login-page ログインページのレンダリングに使用する必要のある URL。LoginUrlAuthenticationEntryPoint の loginFormUrl プロパティにマップします。デフォルトは "/login" です。

  • login-processing- url UsernamePasswordAuthenticationFilter の filterProcessesUrl プロパティにマップします。デフォルト値は "/login" です。

  • password-parameter パスワードを含むリクエストパラメーターの名前。デフォルトは "password" です。

  • username-parameter ユーザー名を含むリクエストパラメーターの名前。デフォルトは "username" です。

  • authentication-success-forward-url ForwardAuthenticationSuccessHandler を UsernamePasswordAuthenticationFilter の authenticationSuccessHandler プロパティにマッピングします。

  • authentication-failure-forward-url ForwardAuthenticationFailureHandler を UsernamePasswordAuthenticationFilter の authenticationFailureHandler プロパティにマッピングします。

<oauth2-login>

OAuth 2.0 ログイン機能は、OAuth 2.0 および / または OpenID Connect 1.0 プロバイダーを使用して認証サポートを構成します。

<oauth2-login> の親要素

<oauth2-login> の属性

  • client-registration-repository-ref ClientRegistrationRepository への参照。

  • authorized-client-repository-ref OAuth2AuthorizedClientRepository への参照。

  • authorized-client-service-ref OAuth2AuthorizedClientService への参照。

  • authorization-request-repository-ref AuthorizationRequestRepository への参照。

  • authorization-request-resolver-ref OAuth2AuthorizationRequestResolver への参照。

  • authorization-redirect-strategy-ref 認可 RedirectStrategy への参照。

  • access-token-response-client-ref OAuth2AccessTokenResponseClient への参照。

  • user-authorities-mapper-ref GrantedAuthoritiesMapper への参照。

  • user-service-ref OAuth2UserService への参照。

  • oidc-user-service-ref OpenID Connect OAuth2UserService への参照。

  • login-processing-url フィルターが認証リクエストを処理する URI。

  • login-page ユーザーをログインに送信するための URI。

  • authentication-success-handler-ref AuthenticationSuccessHandler への参照。

  • authentication-failure-handler-ref AuthenticationFailureHandler への参照。

  • jwt-decoder-factory-ref OidcAuthorizationCodeAuthenticationProvider によって使用される JwtDecoderFactory への参照。

<oauth2-client>

OAuth 2.0 クライアントサポートを構成します。

<oauth2-client> の親要素

<oauth2-client> の属性

  • client-registration-repository-ref ClientRegistrationRepository への参照。

  • authorized-client-repository-ref OAuth2AuthorizedClientRepository への参照。

  • authorized-client-service-ref OAuth2AuthorizedClientService への参照。

<oauth2-client> の子要素

<authorization-code-grant>

OAuth 2.0 認証コード付与を構成します。

<authorization-code-grant> の親要素

<authorization-code-grant> の属性

  • authorization-request-repository-ref AuthorizationRequestRepository への参照。

  • authorization-redirect-strategy-ref 認可 RedirectStrategy への参照。

  • authorization-request-resolver-ref OAuth2AuthorizationRequestResolver への参照。

  • access-token-response-client-ref OAuth2AccessTokenResponseClient への参照。

<client-registrations>

OAuth 2.0 または OpenID Connect 1.0 プロバイダーに登録されたクライアント(ClientRegistration)のコンテナー要素。

<client-registrations> の子要素

<client-registration>

OAuth 2.0 または OpenID Connect 1.0 プロバイダーに登録されたクライアントを表します。

<client-registration> の親要素

<client-registration> の属性

  • registration-id ClientRegistration を一意に識別する ID。

  • client-id クライアント識別子。

  • client-secret クライアントの秘密。

  • client-authentication-method プロバイダーでクライアントを認証するために使用される方法。サポートされている値は、client_secret_basicclient_secret_postprivate_key_jwtclient_secret_jwt、および none (パブリッククライアント) [IETF] (英語) です。

  • authentication-grant-type OAuth 2.0 Authorization フレームワークは、4 つの認可付与 [IETF] (英語) 型を定義します。サポートされている値は、authorization_codeclient_credentialspassword、拡張認可型 urn:ietf:params:oauth:grant-type:jwt-bearer です。

  • redirect-uri エンドユーザーがクライアントへのアクセスを認証および認可した後に、認可サーバーがエンドユーザーのユーザーエージェントをリダイレクトするクライアントの登録済みリダイレクト URI。

  • scope 認可リクエストフロー中にクライアントがリクエストしたスコープ(openid、メール、プロファイルなど)。

  • client-name クライアントに使用される説明的な名前。この名前は、自動生成されたログインページにクライアントの名前を表示するときなど、特定のシナリオで使用される場合があります。

  • provider-id 関連付けられたプロバイダーへの参照。<provider> 要素を参照するか、共通プロバイダー(google、github、facebook、okta)のいずれかを使用できます。

<provider>

OAuth 2.0 または OpenID Connect 1.0 プロバイダーの構成情報。

<provider> の親要素

<provider> 属性

  • provider-id プロバイダーを一意に識別する ID。

  • authorization-uri 認可サーバーの認可エンドポイント URI。

  • token-uri 認可サーバーのトークンエンドポイント URI。

  • user-info-uri 認証されたエンドユーザーのクレーム / 属性にアクセスするために使用される UserInfo エンドポイント URI。

  • user-info-authentication-method アクセストークンを UserInfo エンドポイントに送信するときに使用される認証方法。サポートされる値は、headerform、および query です。

  • user-info-user-name-attribute エンドユーザーの名前または識別子を参照する UserInfo レスポンスで返される属性の名前。

<oauth2-resource-server>

BearerTokenAuthenticationFilterBearerTokenAuthenticationEntryPointBearerTokenAccessDeniedHandler を構成に追加します。さらに、<jwt> または <opaque-token> のいずれかを指定する必要があります。

<oauth2-resource-server> の親要素

<oauth2-resource-server> の子要素

<oauth2-resource-server> の属性

  • authentication-manager-resolver-ref リクエスト時に AuthenticationManager を解決する AuthenticationManagerResolver への参照

  • bearer-token-resolver-ref リクエストからベアラートークンを取得する BearerTokenResolver への参照

  • 不正なリクエストを処理する AuthenticationEntryPoint へのエントリポイント参照

<jwt>

JWT を認可する OAuth 2.0 リソースサーバーを表します

<jwt> の親要素

<jwt> の属性

  • jwt-authentication-converter-ref Converter<Jwt, AbstractAuthenticationToken> への参照

  • jwt-decoder-ref JwtDecoder への参照。これは、jwk-set-uri をオーバーライドするより大きなコンポーネントです

  • jwk-set-uri OAuth 2.0 Authorization Server から署名検証キーをロードするために使用される JWK Set Uri

<opaque-token>

Opaque トークンを認可する OAuth 2.0 リソースサーバーを表します

<opaque-token> の親要素

<opaque-token> の属性

  • introspector- ref OpaqueTokenIntrospector への参照。これは、introspection-uriclient-idclient-secret をオーバーライドするより大きなコンポーネントです。

  • introspection-uri Introspection Uri は、Opaque トークンの詳細をイントロスペクションするために使用されていました。client-id および client-secret を伴う必要があります。

  • client-id 提供された introspection-uri に対するクライアント認証に使用するクライアント ID。

  • client-secret 指定された introspection-uri に対するクライアント認証に使用するクライアントシークレット。

  • authentication-converter-ref OpaqueTokenAuthenticationConverter への参照。成功したイントロスペクションの結果を Authentication インスタンスに変換する責任があります。

<relying-party-registrations>

SAML 2.0 ID プロバイダーに登録された証明書利用者(ClientRegistration)のコンテナー要素。

<relying-party-registrations> 属性

  • id RelyingPartyRegistrationRepository を一意に識別する ID。

<relying-party-registrations> の子要素

<relying-party-registration>

SAML 2.0 IID プロバイダーに登録されている証明書利用者を表します

<relying-party-registration> の親要素

<relying-party-registration> 属性

  • registration-id RelyingPartyRegistration を一意に識別する ID。

  • メタデータの場所アサーティングパーティのメタデータの場所。

  • assertion-consumer-service-location AssertionConsumerService の場所。証明書利用者の <SPSSODescriptor> の <AssertionConsumerService Location="…​"/> にある値に相当します。

  • アサーション - コンシューマー - サービス -AssertionConsumerService バインディングのバインディング。証明書利用者の <SPSSODescriptor> の <AssertionConsumerService Binding="…​"/> にある値に相当します。サポートされている値は POSTREDIRECT です。

  • single-logout-service-location SingleLogoutService の場所。証明書利用者の <SPSSODescriptor> の <SingleLogoutService Location=" … "/> にある値に相当します。

  • single-logout-service-response-location SingleLogoutService ResponseLocation。証明書利用者の <SPSSODescriptor> の <SingleLogoutServiceResponseLocation=" … "/> にある値に相当します。

  • single-logout-service- binding SingleLogoutService バインディング。証明書利用者の <SPSSODescriptor> の <SingleLogoutService Binding=" … "/> にある値に相当します。サポートされている値は POSTREDIRECT です。

  • asserting-party-id 関連付けられたアサートパーティへの参照。<asserting-party> 要素を参照する必要があります。

<relying-party-registration> の子要素

<decryption-credential>

証明書利用者に関連付けられている復号化資格情報。

<decryption-credential> の親要素

<decryption-credential> 属性

  • 証明書の場所証明書を取得する場所

  • private-key-location 証明書利用者の秘密鍵を取得する場所

<signing-credential>

証明書利用者に関連付けられている署名資格情報。

<verification-credential> の親要素

<verification-credential> 属性

  • 証明書の場所この証明書を取得する場所

  • private-key-location 証明書利用者の秘密鍵を取得する場所

<asserting-party>

SAML 2.0 アサーティングパーティの設定情報。

<asserting-party> の親要素

<asserting-party> 属性

  • asserting-party-id アサート側を一意に識別する ID。

  • entity-id アサーティングパーティの EntityID

  • want-authn-requests-signed WantAuthnRequestsSigned 設定。送信する前に、証明書利用者が AuthnRequest に署名する必要があるというアサート側の設定を示します。

  • シングルサインオンサービスバインディング SingleSignOnService (英語) バインディング。サポートされている値は POST および REDIRECT です。

  • signing-algorithms このアサートパーティの org.opensaml.saml.ext.saml2alg.SigningMethod アルゴリズムのリスト(優先順)。

  • single-logout-service-location SingleLogoutService の場所。アサート側の <IDPSSODescriptor> の <SingleLogoutService Location=" … "/> にある値に相当します。

  • single-logout-service-response-location SingleLogoutService ResponseLocation。アサート側の <IDPSSODescriptor> の <SingleLogoutServiceResponseLocation=" … "/> にある値に相当します。

  • single-logout-service- binding SingleLogoutService バインディング。アサート側の <IDPSSODescriptor> の <SingleLogoutService Binding=" … "/> にある値に相当します。サポートされている値は POSTREDIRECT です。

<asserting-party> の子要素

<encryption-credential>

アサート側に関連付けられた暗号化クレデンシャル。

<encryption-credential> の親要素

<encryption-credential> 属性

  • 証明書の場所証明書を取得する場所

  • private-key-location 証明書利用者の秘密鍵を取得する場所

<verification-credential>

アサート側に関連付けられた検証資格情報。

<verification-credential> の親要素

<verification-credential> 属性

  • 証明書の場所この証明書を取得する場所

  • private-key-location 証明書利用者の秘密鍵を取得する場所

<http-basic>

BasicAuthenticationFilter および BasicAuthenticationEntryPoint を構成に追加します。後者は、フォームベースのログインが有効になっていない場合にのみ、構成エントリポイントとして使用されます。

<http-basic> の親要素

<http-basic> の属性

  • authentication-details-source-ref 認証フィルターによって使用される AuthenticationDetailsSource への参照

  • entry-point-ref BasicAuthenticationFilter が使用する AuthenticationEntryPoint を設定します。

<http-firewall> 要素

これは、名前空間によって作成された FilterChainProxy に HttpFirewall のカスタム実装を挿入するために使用できる最上位要素です。デフォルトの実装は、ほとんどのアプリケーションに適しているはずです。

<http-firewall> の属性

  • ref HttpFirewall を実装する Spring Bean への参照を定義します。

<intercept-url>

この要素は、アプリケーションが関心を持つ URL パターンのセットを定義し、それらの処理方法を構成するために使用されます。FilterSecurityInterceptor が使用する FilterInvocationSecurityMetadataSource を構築するために使用されます。たとえば、特定の URL に HTTPS でアクセスする必要がある場合は、ChannelProcessingFilter の構成も行います。指定されたパターンを受信リクエストと照合する場合、要素が宣言されている順序で照合が行われます。最も具体的なパターンを最初に、最も一般的なパターンを最後に配置する必要があります。

<intercept-url> の親要素

<intercept-url> の属性

  • access 定義された URL パターン / メソッドの組み合わせに対して FilterInvocationSecurityMetadataSource に保存されるアクセス属性をリストします。これは、セキュリティ構成属性(ロール名など)のコンマ区切りリストでなければなりません。

  • method 受信リクエストを照合するためにパターンおよびサーブレットパス(オプション)と組み合わせて使用される HTTP メソッド。省略した場合、どのメソッドも一致します。メソッドの有無にかかわらず同一のパターンが指定されている場合、メソッド固有の一致が優先されます。

  • pattern URL パスを定義するパターン。コンテンツは、含まれている http 要素の request-matcher 属性に依存するため、Spring MVC がクラスパスにある場合はデフォルトで MVC マッチャーになります。

  • request-matcher-ref この <intercept-url> が使用されているかどうかを判断するために使用される RequestMatcher への参照。

  • require-channel 特定の URL パターンに HTTP または HTTPS でアクセスするかどうかに応じて、"http" または "https" を指定できます。または、優先度がない場合は、値 "any" を使用できます。この属性が <intercept-url> 要素に存在する場合、ChannelProcessingFilter がフィルタースタックに追加され、その追加の依存関係がアプリケーションコンテキストに追加されます。

<port-mappings> 構成が追加されると、これは SecureChannelProcessor および InsecureChannelProcessor Bean によって使用され、HTTP/HTTPS へのリダイレクトに使用されるポートが決定されます。

このプロパティは filter-security-metadata-source には無効です
  • サーブレットパス受信リクエストを照合するためにパターンおよび HTTP メソッドと組み合わせて使用されるサーブレットパス。この属性は、request-matcher が "mvc" の場合にのみ適用できます。さらに、この値は、次の 2 つのユースケースでのみ必要です。1) '/' で始まるマッピングがあり、異なる HttpServlet が ServletContext に登録されている 2 つ以上があります。2)パターンは、デフォルト(ルート)の HttpServlet'/' を除いて、登録された HttpServlet パスと同じ値で始まります。

このプロパティは filter-security-metadata-source には無効です

<jee>

J2eePreAuthenticatedProcessingFilter をフィルターチェーンに追加して、コンテナー認証との統合を提供します。

<jee> の親要素

<jee> 属性

  • mappable-roles 受信 HttpServletRequest で検索するロールのコンマ区切りリスト。

  • user-service-ref ユーザーサービス(または UserDetailsService Bean)ID への参照

<logout>

LogoutFilter をフィルタースタックに追加します。これは SecurityContextLogoutHandler で構成されます。

<logout> の親要素

<logout> の属性

  • delete-cookies ユーザーがログアウトするときに削除する Cookie の名前のコンマ区切りリスト。

  • invalidate-session SecurityContextLogoutHandler の invalidateHttpSession にマップします。デフォルトは "true" であるため、ログアウト時にセッションは無効になります。

  • logout-success-url ログアウト後にユーザーが表示されるリンク先 URL。デフォルトは <form-login-login-page> /?logout (つまり、/login?logout)

    この属性を設定すると、SessionManagementFilter に属性値で構成された SimpleRedirectInvalidSessionStrategy が挿入されます。無効なセッション ID が送信されると、戦略が呼び出され、構成された URL にリダイレクトされます。

  • logout-url ログアウトの原因となる URL(つまり、フィルターによって処理される URL)。デフォルトは "/logout" です。

  • success-handler-ref は、ログアウト後にナビゲーションを制御するために呼び出される LogoutSuccessHandler のインスタンスを提供するために使用できます。

<saml2-login>

SAML 2.0 ログイン機能は、SAML 2.0 サービスプロバイダーを使用して認証サポートを構成します。

<saml2-login> の親要素

<saml2-login> 属性

  • RelyingPartyRegistrationRepository への relying -party-registration-repository-ref 参照。

  • authentication-request-repository- ref Saml2AuthenticationRequestRepository への参照。

  • authentication-request-context-resolver- ref Saml2AuthenticationRequestResolver への参照。

  • authentication-converter- ref AuthenticationConverter への参照。

  • login-processing-url フィルターが認証リクエストを処理する URI。

  • login-page ユーザーをログインに送信するための URI。

  • authentication-success-handler-ref AuthenticationSuccessHandler への参照。

  • authentication-failure-handler-ref AuthenticationFailureHandler への参照。

  • authentication-manager- ref AuthenticationManager への参照。

<saml2-logout>

SAML 2.0 シングルログアウト機能は、RP および AP によって開始される SAML 2.0 シングルログアウトのサポートを構成します。

<saml2-logout> の親要素

<saml2-logout> 属性

  • logout-url 証明書利用者またはアサート側がログアウトをトリガーできる URL。

  • logout-request-url アサート側が SAML 2.0 ログアウトリクエストを送信できる URL。

  • logout-response-url アサーティングパーティが SAML 2.0 ログアウトレスポンスを送信できる URL。

  • RelyingPartyRegistrationRepository への relying -party-registration-repository-ref 参照。

  • logout-request-validator- ref Saml2LogoutRequestValidator への参照。

  • logout-request-resolver- ref Saml2LogoutRequestResolver への参照。

  • logout-request-repository- ref Saml2LogoutRequestRepository への参照。

  • logout-response-validator- ref Saml2LogoutResponseValidator への参照。

  • logout-response-resolver- ref Saml2LogoutResponseResolver への参照。

<password-management>

この要素は、パスワード管理を構成します。

< パスワード管理> の親要素

< パスワード管理> 属性

  • change-password-page パスワードの変更ページ。デフォルトは "/change-password" です。

<port-mappings>

デフォルトでは、PortMapperImpl のインスタンスが設定に追加され、安全な URL と安全でない URL へのリダイレクトに使用されます。この要素は、そのクラスが定義するデフォルトのマッピングをオーバーライドするためにオプションで使用できます。各子 <port-mapping> 要素は、HTTP:HTTPS ポートのペアを定義します。デフォルトのマッピングは 80:443 および 8080:8443 です。これらをオーバーライドする例は、HTTPS にリダイレクトにあります。

<port-mappings> の親要素

<port-mappings> の子要素

<port-mapping>

リダイレクトを強制するときに、http ポートを https ポートにマップする方法を提供します。

<port-mapping> の親要素

<port-mapping> の属性

  • http 使用する http ポート。

  • https 使用する https ポート。

<remember-me>

RememberMeAuthenticationFilter をスタックに追加します。これは、属性設定に応じて、TokenBasedRememberMeServicesPersistentTokenBasedRememberMeServicesRememberMeServices を実装するユーザー指定の Bean で構成されます。

<remember-me> の親要素

<remember-me> 属性

  • authentication-success-handler-ref カスタムナビゲーションが必要な場合、RememberMeAuthenticationFilter の authenticationSuccessHandler プロパティを設定します。値は、アプリケーションコンテキストの AuthenticationSuccessHandler Bean の名前である必要があります。

  • data-source-ref DataSource Bean への参照。これが設定されている場合、PersistentTokenBasedRememberMeServices が使用され、JdbcTokenRepositoryImpl インスタンスで構成されます。

  • remember-me-parameter remember-me 認証を切り替えるリクエストパラメーターの名前。デフォルトは "remember-me" です。AbstractRememberMeServices の「パラメーター」プロパティにマップします。

  • key AbstractRememberMeServices の "key" プロパティにマップします。remember-me cookie が 1 つのアプリケーション [ 3 ] 内でのみ有効であることを保証するために、一意の値に設定する必要があります。これが設定されていない場合、安全なランダム値が生成されます。安全なランダム値の生成には時間がかかることがあるため、この値を明示的に設定すると、remember-me 機能を使用する際の起動時間を改善できます。

  • services-alias 内部で定義された RememberMeServices を Bean エイリアスとしてエクスポートし、アプリケーションコンテキストの他の Bean で使用できるようにします。

  • services-ref フィルターで使用される RememberMeServices 実装の完全な制御を許可します。値は、このインターフェースを実装するアプリケーションコンテキストの Bean の id である必要があります。ログアウトフィルターを使用している場合は、LogoutHandler も実装する必要があります。

  • token-repository-ref PersistentTokenBasedRememberMeServices を構成しますが、カスタム PersistentTokenRepository Bean の使用を許可します。

  • token-validity-seconds AbstractRememberMeServices の tokenValiditySeconds プロパティにマップします。remember-me cookie を有効にする期間を秒単位で指定します。デフォルトでは、14 日間有効です。

  • user-service-ref remember-me サービスの実装には UserDetailsService へのアクセスが必要であるため、アプリケーションコンテキストで定義されている必要があります。1 つしかない場合は、名前空間の構成によって自動的に選択および使用されます。複数のインスタンスがある場合、この属性を使用して明示的に Bean id を指定できます。

<request-cache> 要素

ExceptionTranslationFilter が AuthenticationEntryPoint を呼び出す前にリクエスト情報を格納するために使用する RequestCache インスタンスを設定します。

<request-cache> の親要素

<request-cache> の属性

  • ref RequestCache である Spring Bean への参照を定義します。

<session-management>

セッション管理関連機能は、SessionManagementFilter をフィルタースタックに追加することで実装されます。

<session-management> の親要素

<session-management> の属性

  • authentication-strategy-explicit-invocation この属性を true に設定すると、SessionManagementFilter が注入されず、SessionAuthenticationStrategy の明示的な呼び出しが必要になります。

  • invalid-session-url この属性を設定すると、SessionManagementFilter に属性値で構成された SimpleRedirectInvalidSessionStrategy が挿入されます。無効なセッション ID が送信されると、戦略が呼び出され、構成された URL にリダイレクトされます。

  • invalid-session-url SessionManagementFilter が使用する InvalidSessionStrategy インスタンスの注入を許可します。これまたは invalid-session-url 属性のいずれかを使用しますが、両方は使用しません。

  • session-authentication-error-url SessionAuthenticationStrategy が例外を発生させたときに表示されるエラーページの URL を定義します。設定されていない場合、不正な (401) エラーコードがクライアントに返されます。認証が失敗した URL が優先されるフォームベースのログイン中にエラーが発生した場合、この属性は適用されないことに注意してください。

  • session-authentication-strategy-ref SessionManagementFilter によって使用される SessionAuthenticationStrategy インスタンスの注入を許可します

  • session-fixation-protection は、ユーザー認証時にセッション固定保護を適用する方法を示します。"none" に設定すると、保護は適用されません。"newSession" は、Spring セキュリティ関連属性のみが移行された新しい空のセッションを作成します。"migrateSession" は、新しいセッションを作成し、すべてのセッション属性を新しいセッションにコピーします。Servlet 3.1 (Java EE 7) 以降のコンテナーでは、"changeSessionId" を指定すると、既存のセッションが保持され、コンテナーが提供するセッション固定保護 (HttpServletRequest#changeSessionId()) が使用されます。Servlet 3.1 以降のコンテナーではデフォルトで "changeSessionId"、古いコンテナーでは "migrateSession" になります。古いコンテナーで "changeSessionId" を使用すると、例外がスローされます。

    セッション固定保護が有効になっている場合、SessionManagementFilter には適切に構成された DefaultSessionAuthenticationStrategy が挿入されます。詳細については、このクラスの Javadoc を参照してください。

<session-management> の子要素

<concurrency-control>

同時セッション制御のサポートが追加され、ユーザーが持つことができるアクティブなセッションの数に制限を設けることができます。ConcurrentSessionFilter が作成され、ConcurrentSessionControlAuthenticationStrategy が SessionManagementFilter とともに使用されます。form-login 要素が宣言されている場合、戦略オブジェクトも作成された認証フィルターに挿入されます。SessionRegistry のインスタンス(ユーザーがカスタム Bean を使用することを望まない場合は SessionRegistryImpl インスタンス)は、戦略で使用するために作成されます。

<concurrency-control> の親要素

<concurrency-control> の属性

  • error-if-maximum-exceeded "true" に設定すると、ユーザーがセッションの最大許容数を超えようとすると、SessionAuthenticationException が発生します。デフォルトの動作では、元のセッションが期限切れになります。

  • expired-url ユーザーが許可されたセッションの数を超えて別の場所に再度ログインしたため、同時セッションコントローラーによって「期限切れ」になったセッションを使用しようとすると、ユーザーがリダイレクトされる URL。exception-if-maximum-exceeded が設定されていない限り、設定する必要があります。値が指定されていない場合、有効期限メッセージがレスポンスに直接書き込まれます。

  • expired-url ConcurrentSessionFilter によって使用される ExpiredSessionStrategy インスタンスの注入を許可します

  • max-sessions ConcurrentSessionControlAuthenticationStrategy の maximumSessions プロパティにマップします。無制限のセッションをサポートするには、値として -1 を指定します。

  • session-registry-alias また、独自の Bean または管理インターフェースで使用するために、内部セッションレジストリへの参照を持つことも役立ちます。session-registry-alias 属性を使用して内部 Bean を公開し、構成の他の場所で使用できる名前を付けることができます。

  • session-registry-ref ユーザーは、session-registry-ref 属性を使用して、独自の SessionRegistry 実装を提供できます。他の同時セッション制御 Bean は、それを使用するために接続されます。

<x509>

X.509 認証のサポートを追加します。X509AuthenticationFilter がスタックに追加され、Http403ForbiddenEntryPoint Bean が作成されます。後者は、他の認証メカニズムが使用されていない場合にのみ使用されます(その唯一の機能は HTTP 403 エラーコードを返すことです)。ユーザー権限のロードを UserDetailsService に委譲する PreAuthenticatedAuthenticationProvider も作成されます。

<x509> の親要素

<x509> の属性

  • authentication-details-source-ref AuthenticationDetailsSource への参照

  • subject-principal-regexUserDetailsService で使用するために)証明書からユーザー名を抽出するために使用される正規表現を定義します。

  • user-service-ref 複数のインスタンスが設定されている場合に、X.509 で特定の UserDetailsService を使用できます。設定されていない場合は、適切なインスタンスを自動的に見つけて使用しようとします。

<filter-chain-map>

FilterChainProxy インスタンスを FilterChainMap で明示的に構成するために使用されます

<filter-chain-map> の属性

  • request-matcher 受信リクエストのマッチングに使用する戦略を定義します。現在、オプションは "ant" (ant パスパターンの場合)、"regex" (正規表現の場合)、"ciRegex" (大文字と小文字を区別しない正規表現の場合)です。

<filter-chain-map> の子要素

<filter-chain>

内で使用され、特定の URL パターンと、そのパターンに一致する URL に適用されるフィルターのリストを定義します。FilterChainProxy を構成するために複数のフィルターチェーン要素がリストにアセンブルされる場合、最も具体的なパターンをリストの一番上に配置し、最も一般的なパターンを一番下に配置する必要があります。

<filter-chain> の親要素

<filter-chain> 属性

  • フィルター Filter を実装する Spring Bean への参照のコンマ区切りリスト。値 "none" は、この FilterChain に Filter を使用しないことを意味します。

  • request-matcher-ref RequestMatcher への参照。filters 属性から Filter を呼び出す必要があるかどうかを判断するために使用されます。

<filter-security-metadata-source>

FilterSecurityInterceptor で使用するために FilterSecurityMetadataSource Bean を明示的に構成するために使用されます。通常、<http> 要素を使用するのではなく、FilterChainProxy を明示的に構成する場合にのみ必要です。使用する intercept-url 要素には、パターン、メソッド、アクセス属性のみを含める必要があります。それ以外の場合は、構成エラーが発生します。

<filter-security-metadata-source> の属性

  • id Bean 識別子。コンテキストの他の場所で Bean を参照するために使用されます。

  • request-matcher 受信リクエストのマッチングに使用する戦略を定義します。現在、オプションは "ant" (ant パスパターンの場合)、"regex" (正規表現の場合)、"ciRegex" (大文字と小文字を区別しない正規表現の場合)です。

  • use-expressions 構成属性の従来のリストではなく、<intercept-url> 要素の "access" 属性で式の使用を有効にします。デフォルトは "true" です。有効にした場合、各属性には単一のブール式を含める必要があります。式が "true" と評価されると、アクセスが許可されます。

<filter-security-metadata-source> の子要素


1. xref:servlet/configuration/xml-namespace.adoc#ns-web-xml [ はじめにの章を参照してください
2. この機能は実際には便宜上提供されたものであり、本番環境を対象としたものではありません(ビューテクノロジーが選択され、カスタマイズされたログインページをレンダリングするために使用できます)。クラス DefaultLoginPageGeneratingFilter は、ログインページのレンダリングを担当し、必要に応じて、通常のフォームログインおよび / または OIDC の両方のログインフォームを提供します。
3. これは、トークンがサーバー側に保存される PersistentTokenBasedRememberMeServices の使用には影響しません。