Spring Security リファレンス

作者

Ben Alex , Luke Taylor , Rob Winch , Gunnar Hillert , Joe Grandja , Jay Bryant , Eddú Meléndez , Josh Cummings

5.2.8.BUILD-SNAPSHOT

このドキュメントのコピーは、あなた自身の使用および他者への配布のために作成することができますが、そのようなコピーに料金を請求しないこと、さらに、印刷物または電子的に配布されるかどうかにかかわらず、各コピーにこの著作権表示が含まれていることを条件とします。


目次

I. 序文
1. 前提条件
2. Spring Security コミュニティ
2.1. ヘルプの利用
2.2. 参加する
2.3. ソースコード
2.4. Apache 2 ライセンス
2.5. ソーシャルメディア
3. Spring Security 5.2 の新機能
3.1. サーブレット
3.2. WebFlux
3.3. コア
4. Spring Security の入手
4.1. リリース番号
4.2. Maven での使用
4.2.1. Spring Boot と Maven
4.2.2. Spring Boot なしの Maven
4.2.3. Maven リポジトリ
4.3. Gradle
4.3.1. Spring Boot と Gradle
4.3.2. Spring Boot なしの Gradle
4.3.3. Gradle リポジトリ
5. 機能
5.1. エクスプロイトに対する保護
5.1.1. クロスサイトリクエストフォージェリ (CSRF)
CSRF 攻撃とは何ですか?
CSRF 攻撃からの保護
CSRF 保護を使用する場合
CSRF の考慮事項
5.1.2. セキュリティ HTTP レスポンスヘッダー
デフォルトのセキュリティヘッダー
キャッシュ制御
コンテンツタイプオプション
HTTP 厳格なトランスポートセキュリティ (HSTS)
HTTP 公開キーの固定 (HPKP)
X-Frame-Options
X-XSS-Protection
コンテンツセキュリティポリシー (CSP)
リファラーポリシー
機能ポリシー
サイトデータを消去する
カスタムヘッダー
5.1.3. HTTP
HTTPS にリダイレクト
厳格な輸送セキュリティ
プロキシサーバー構成
6. プロジェクトモジュール
6.1. コア  —  spring-security-core.jar
6.2. リモーティング  —  spring-security-remoting.jar
6.3. Web —  spring-security-web.jar
6.4. 構成  —  spring-security-config.jar
6.5. LDAP —  spring-security-ldap.jar
6.6. OAuth 2.0 コア  —  spring-security-oauth2-core.jar
6.7. OAuth 2.0 クライアント  —  spring-security-oauth2-client.jar
6.8. OAuth 2.0 JOSE —  spring-security-oauth2-jose.jar
6.9. OAuth 2.0 リソースサーバー  —  spring-security-oauth2-resource-server.jar
6.10. ACL —  spring-security-acl.jar
6.11. CAS —  spring-security-cas.jar
6.12. OpenID —  spring-security-openid.jar
6.13. テスト  —  spring-security-test.jar
7. サンプル
II. サーブレットアプリケーション
8. Hello Spring Security
8.1. 依存関係の更新
8.2. Hello Spring Security Boot の開始
8.3. Spring Boot 自動構成
9. アーキテクチャと実装
9.1. 技術概要
9.1.1. ランタイム環境
9.1.2. コアコンポーネント
SecurityContextHolder、SecurityContext、および認証オブジェクト
UserDetailsService
GrantedAuthority
要約
9.1.3. 認証
Spring Security の認証とは何ですか?
SecurityContextHolder のコンテンツを直接設定する
9.1.4. Web アプリケーションでの認証
ExceptionTranslationFilter
AuthenticationEntryPoint
認証メカニズム
リクエスト間の SecurityContext の保存
9.1.5. Spring Security のアクセス制御(認可)
セキュリティと AOP のアドバイス
セキュアオブジェクトと AbstractSecurityInterceptor
9.2. コアサービス
9.2.1. AuthenticationManager、ProviderManager、および AuthenticationProvider
認証成功時の資格情報の消去
DaoAuthenticationProvider
9.2.2. UserDetailsService の実装
インメモリ認証
JdbcDaoImpl
10. 認証
10.1. インメモリ認証
10.2. JDBC 認証
10.3. LDAP 認証
10.3.1. 概要
10.3.2. Spring Security での LDAP の使用
10.4. LDAP サーバーの構成
10.4.1. 組み込みテストサーバーの使用
10.4.2. バインド認証の使用
10.4.3. 権限の読み込み
10.5. 実装クラス
10.5.1. LdapAuthenticator の実装
共通の機能
BindAuthenticator
PasswordComparisonAuthenticator
10.5.2. LDAP サーバーへの接続
10.5.3. LDAP 検索オブジェクト
FilterBasedLdapUserSearch
10.5.4. LdapAuthoritiesPopulator
10.5.5. Spring Bean の構成
10.5.6. LDAP 属性とカスタマイズされた UserDetails
10.6. Active Directory 認証
10.6.1. ActiveDirectoryLdapAuthenticationProvider
Active Directory エラーコード
10.7. LDAP Java 構成
10.8. AuthenticationProvider
10.8.1. AuthenticationProvider Java 構成
10.8.2. AuthenticationProvider XML 設定
10.9. UserDetailsService
10.10. パスワードエンコーディング
10.10.1. パスワード履歴
10.10.2. DelegatingPasswordEncoder
パスワード保存形式
パスワードエンコーディング
パスワード照合
はじめに
トラブルシューティング
10.10.3. BCryptPasswordEncoder
10.10.4. Argon2PasswordEncoder
10.10.5. Pbkdf2PasswordEncoder
10.10.6. SCryptPasswordEncoder
10.10.7. その他 PasswordEncoders
10.10.8. パスワードエンコーダーの XML 構成
10.11. 認証マネージャーと名前空間
10.12. セッション管理
10.12.1. タイムアウトの検出
10.12.2. 同時セッション制御
10.12.3. セッション固定攻撃保護
10.12.4. SessionManagementFilter
10.12.5. SessionAuthenticationStrategy
10.12.6. 並行性制御
現在認証されているユーザーとそのセッションについて SessionRegistry を照会する
10.13. Remember-Me 認証
10.13.1. 概要
10.13.2. 単純なハッシュベースのトークンアプローチ
10.13.3. 永久トークンアプローチ
10.13.4. Remember-Me インターフェースと実装
TokenBasedRememberMeServices
PersistentTokenBasedRememberMeServices
10.14. OpenID サポート
10.14.1. 属性交換
10.15. 匿名認証
10.15.1. 概要
10.15.2. 構成
10.15.3. AuthenticationTrustResolver
10.16. 事前認証シナリオ
10.16.1. 事前認証フレームワーククラス
AbstractPreAuthenticatedProcessingFilter
PreAuthenticatedAuthenticationProvider
Http403ForbiddenEntryPoint
10.16.2. 具体的な実装
リクエストヘッダー認証 (Siteminder)
Java EE コンテナー認証
10.17. Java 認証および認可サービス(JAAS)プロバイダー
10.17.1. 概要
10.17.2. AbstractJaasAuthenticationProvider
JAAS CallbackHandler
JAAS AuthorityGranter
10.17.3. DefaultJaasAuthenticationProvider
InMemoryConfiguration
DefaultJaasAuthenticationProvider の構成例
10.17.4. JaasAuthenticationProvider
10.17.5. サブジェクトとして実行
10.18. CAS 認証
10.18.1. 概要
10.18.2. CAS の仕組み
Spring Security と CAS 相互作用シーケンス
10.18.3. CAS クライアントの構成
サービスチケット認証
シングルログアウト
CAS を使用したステートレスサービスへの認証
代理チケット認証
10.19. X.509 認証
10.19.1. 概要
10.19.2. Web アプリケーションへの X.509 認証の追加
10.19.3. Tomcat で SSL をセットアップする
10.20. Run-As 認証の置き換え
10.20.1. 概要
10.20.2. 構成
10.21. フォームログイン
10.21.1. フォームログイン Java 構成
10.21.2. フォームログイン XML 設定
フォームおよび基本ログインオプション
10.22. 基本認証およびダイジェスト認証
10.22.1. BasicAuthenticationFilter
10.22.2. 構成
10.23. DigestAuthenticationFilter
10.23.1. 構成
10.24. ログアウトの処理
10.24.1. ログアウト Java 構成
10.24.2. ログアウト XML 設定
10.24.3. LogoutHandler
10.24.4. LogoutSuccessHandler
10.24.5. その他のログアウト関連の参照
10.25. カスタム AuthenticationEntryPoint の設定
11. 認可
11.1. 認可アーキテクチャ
11.1.1. 権限
11.1.2. 呼び出し前の処理
AccessDecisionManager
投票ベースの AccessDecisionManager 実装
11.1.3. 呼び出し処理後
11.1.4. 階層的なロール
11.2. セキュアなオブジェクトの実装
11.2.1. AOP Alliance(MethodInvocation)セキュリティインターセプター
明示的な MethodSecurityInterceptor 設定
11.2.2. AspectJ(JoinPoint)セキュリティインターセプター
11.3. 式ベースのアクセス制御
11.3.1. 概要
一般的な組み込み式
11.3.2. Web セキュリティ式
Web セキュリティ式で Bean を参照する
Web セキュリティ式のパス変数
11.3.3. メソッドセキュリティ式
@Pre および @Post アノテーション
組み込み式
11.4. リクエストを承認する
11.5. メソッドのセキュリティ
11.5.1. EnableGlobalMethodSecurity
11.5.2. GlobalMethodSecurityConfiguration
11.5.3. <global-method-security> 要素
11.5.4. protect-pointcut を使用したセキュリティポイントカットの追加
11.6. ドメインオブジェクトセキュリティ (ACL)
11.6.1. 概要
11.6.2. 主なコンセプト
11.6.3. 入門
12. OAuth2
12.1. OAuth 2.0 ログイン
12.1.1. Spring Boot 2.x サンプル
初期設定
リダイレクト URI の設定
application.yml を設定する
アプリケーションを起動する
12.1.2. Spring Boot 2.x プロパティマッピング
12.1.3. CommonOAuth2Provider
12.1.4. カスタムプロバイダープロパティの構成
12.1.5. Spring Boot 2.x 自動構成のオーバーライド
ClientRegistrationRepository @Bean を登録する
WebSecurityConfigurerAdapter を提供する
自動構成を完全にオーバーライドする
12.1.6. Spring Boot 2.x を使用しない Java 構成
12.1.7. 高度な構成
OAuth 2.0 ログインページ
リダイレクトエンドポイント
UserInfo エンドポイント
ID トークン署名検証
OpenID Connect 1.0 ログアウト
12.2. OAuth 2.0 クライアント
12.2.1. コアインターフェース / クラス
ClientRegistration
ClientRegistrationRepository
OAuth2AuthorizedClient
OAuth2AuthorizedClientRepository/OAuth2AuthorizedClientService
OAuth2AuthorizedClientManager/OAuth2AuthorizedClientProvider
12.2.2. 認可付与サポート
認証コード
リフレッシュトークン
クライアント資格情報
リソース所有者のパスワード資格証明
12.2.3. 追加機能
認可されたクライアントの解決
12.2.4. サーブレット環境の WebClient 統合
認定クライアントの提供
承認済みクライアントのデフォルト設定
12.3. OAuth 2.0 リソースサーバー
12.3.1. 依存関係
12.3.2. JWT の最小構成
認可サーバーの指定
スタートアップの期待
ランタイムの期待
12.3.3. 認可サーバー JWK セット Uri を直接指定する
12.3.4. ブート自動構成のオーバーライドまたは置換
jwkSetUri() を使用する
decoder() を使用する
JwtDecoder@Bean を公開する
12.3.5. 信頼できるアルゴリズムの構成
Spring Boot 経由
ビルダーを使用する
JWK Set レスポンスから
12.3.6. 単一の非対称キーを信頼する
Spring Boot 経由
ビルダーを使用する
12.3.7. 単一の対称キーを信頼する
12.3.8. 認可の構成
権限の手動抽出
12.3.9. 検証の構成
タイムスタンプ検証のカスタマイズ
カスタム検証ツールの構成
12.3.10. クレームセットマッピングの構成
単一クレームの変換のカスタマイズ
クレームを追加する
申し立ての削除
クレームの名前を変更する
12.3.11. タイムアウトの構成
12.3.12. イントロスペクションの最小構成
認可サーバーの指定
スタートアップの期待
ランタイムの期待
12.3.13. 認証後の属性の検索
SpEL を介した属性の検索
12.3.14. ブート自動構成のオーバーライドまたは置換
introspectionUri() を使用する
introspector() を使用する
OpaqueTokenIntrospector@Bean を公開する
12.3.15. 認可の構成
権限の手動抽出
12.3.16. タイムアウトの構成
12.3.17. JWT でのイントロスペクションの使用
12.3.18. /userinfo エンドポイントの呼び出し
12.3.19. JWT と Opaque トークンの両方をサポート
12.3.20. マルチテナンシー
リクエスト材料によるテナントの解決
クレームによるテナントの解決
クレームの解析は 1 回のみ
12.3.21. ベアラートークンの解決
カスタムヘッダーからベアラートークンを読み取る
フォームパラメーターからベアラートークンを読み取る
12.3.22. ベアラートークンの伝播
RestTemplate サポート
13. SAML2
13.1. SAML 2.0 ログイン
13.1.1. Spring Security での SAML 2 サポート
13.1.2. Saml 2 ログイン - 高レベルの概念
13.1.3. Saml 2 ログイン - 現在の機能セット
Saml 2 ログイン - まだサポートされていません
13.1.4. Saml 2 ログイン - Java 構成の概要
RelyingPartyRegistration
サービスプロバイダーのメタデータ
認証リクエスト - SP 開始 Flow
13.1.5. Spring Boot 2.x サンプル
複数のアイデンティティプロバイダーのサンプル
14. エクスプロイトに対する保護
14.1. サーブレット環境のクロスサイトリクエストフォージェリ(CSRF)
14.1.1. Spring Security CSRF 保護の使用
適切な HTTP 動詞を使用する
CSRF 保護を構成する
CSRF トークンを含める
14.1.2. CSRF の考慮事項
ログイン
ログアウト
CSRF およびセッションタイムアウト
マルチパート (ファイルアップロード)
HiddenHttpMethodFilter
14.2. セキュリティ HTTP レスポンスヘッダー
14.2.1. デフォルトのセキュリティヘッダー
14.2.2. キャッシュ制御
14.2.3. コンテンツタイプオプション
14.2.4. HTTP 厳格なトランスポートセキュリティ (HSTS)
14.2.5. HTTP 公開キーの固定 (HPKP)
14.2.6. X-Frame-Options
14.2.7. X-XSS-Protection
14.2.8. コンテンツセキュリティポリシー (CSP)
14.2.9. リファラーポリシー
14.2.10. 機能ポリシー
14.2.11. サイトデータを消去する
14.2.12. カスタムヘッダー
静的ヘッダー
ヘッダーライター
DelegatingRequestMatcherHeaderWriter
14.3. HTTP
14.3.1. HTTPS にリダイレクト
14.3.2. 厳格な輸送セキュリティ
14.3.3. プロキシサーバー構成
15. 統合
15.1. サーブレット API の統合
15.1.1. Servlet 2.5+ 統合
HttpServletRequest.getRemoteUser()
HttpServletRequest.getUserPrincipal()
HttpServletRequest.isUserInRole(String)
15.1.2. Servlet 3+ 統合
HttpServletRequest.authenticate(HttpServletRequest,HttpServletResponse)
HttpServletRequest.login(String,String)
HttpServletRequest.logout()
AsyncContext.start(Runnable)
非同期サーブレットのサポート
15.1.3. Servlet 3.1+ 統合
HttpServletRequest#changeSessionId()
15.2. Spring Data 統合
15.2.1. Spring Data および Spring Security の構成
15.2.2. @Query 内のセキュリティ表現
15.3. 並行性サポート
15.3.1. DelegatingSecurityContextRunnable
15.3.2. DelegatingSecurityContextExecutor
15.3.3. Spring Security 並行性クラス
15.4. Jackson サポート
15.5. ローカライゼーション
15.6. Spring MVC 統合
15.6.1. @EnableWebMvcSecurity
15.6.2. MvcRequestMatcher
15.6.3. @AuthenticationPrincipal
15.6.4. Spring MVC 非同期統合
15.6.5. Spring MVC と CSRF の統合
自動トークンインクルージョン
CsrfToken の解決
15.7. WebSocket セキュリティ
15.7.1. WebSocket の設定
15.7.2. WebSocket 認証
15.7.3. WebSocket 認証
WebSocket 認可に関する注意
送信メッセージ
15.7.4. 同一生成元ポリシーの強制
なぜ同じ起源なのでしょうか?
Spring WebSocket 許可されたオリジン
CSRF を Stomp ヘッダーに追加する
WebSockets 内で CSRF を無効にする
15.7.5. SockJS での作業
SockJS とフレームオプション
SockJS とリラックスした CSRF
15.8. CORS
15.9. JSP タグライブラリ
15.9.1. Taglib の宣言
15.9.2. 承認タグ
テストのためのタグ認証の無効化
15.9.3. 認証タグ
15.9.4. accesscontrollist タグ
15.9.5. csrfInput タグ
15.9.6. csrfMetaTags タグ
16. Java 構成
16.1. Hello Web セキュリティ Java 構成
16.1.1. AbstractSecurityWebApplicationInitializer
16.1.2. Spring が存在しない AbstractSecurityWebApplicationInitializer
16.1.3. AbstractSecurityWebApplicationInitializer と Spring MVC
16.2. HttpSecurity
16.3. 複数の HttpSecurity
16.4. カスタム DSL
16.5. 構成済みオブジェクトの後処理
17. セキュリティ名前空間の構成
17.1. 導入
17.1.1. 名前空間の設計
17.2. セキュリティ名前空間の構成の開始
17.2.1. web.xml の構成
17.2.2. 最小限の <http> 構成
デフォルトのログイン後の宛先の設定
17.3. 高度な Web 機能
17.3.1. 独自のフィルターを追加する
17.4. メソッドのセキュリティ
17.5. デフォルトの AccessDecisionManager
17.5.1. AccessDecisionManager のカスタマイズ
18. テスト
18.1. テスト方法のセキュリティ
18.1.1. セキュリティテストのセットアップ
18.1.2. @WithMockUser
18.1.3. @WithAnonymousUser
18.1.4. @WithUserDetails
18.1.5. @WithSecurityContext
18.1.6. メタアノテーションのテスト
18.2. Spring MVC テスト統合
18.2.1. MockMvc および Spring Security のセットアップ
18.2.2. SecurityMockMvcRequestPostProcessors
CSRF 保護を使用したテスト
Spring MVC テストでユーザーとしてテストを実行する
Spring MVC テストで RequestPostProcessor を使用してユーザーとして実行する
HTTP 基本認証のテスト
18.2.3. SecurityMockMvcRequestBuilders
フォームベース認証のテスト
ベアラー認証のテスト
ログアウトのテスト
18.2.4. SecurityMockMvcResultMatchers
認証されていないアサーション
認証されたアサーション
19. Spring Security 暗号モジュール
19.1. 導入
19.2. 暗号化
19.2.1. BytesEncryptor
19.2.2. TextEncryptor
19.3. キージェネレーター
19.3.1. BytesKeyGenerator
19.3.2. StringKeyGenerator
19.4. パスワードエンコーディング
20. 付録
20.1. セキュリティデータベーススキーマ
20.1.1. ユーザースキーマ
Oracle データベースの場合
グループ権限
20.1.2. 永続的ログイン(Remember-Me)スキーマ
20.1.3. ACL スキーマ
HyperSQL
PostgreSQL
MySQL および MariaDB
Microsoft SQL Server
Oracle データベース
20.2. セキュリティ名前空間
20.2.1. Web アプリケーションセキュリティ
<debug>
<http>
<access-denied-handler>
<cors>
<headers>
<cache-control>
<hsts>
<hpkp>
<pins>
<pin>
<content-security-policy>
<referrer-policy>
<feature-policy>
<frame-options>
<xss-protection>
<content-type-options>
<header>
<anonymous>
<csrf>
<custom-filter>
<expression-handler>
<form-login>
<http-basic>
<http-firewall> 要素
<intercept-url>
<jee>
<logout>
<openid-login>
<attribute-exchange>
<openid-attribute>
<port-mappings>
<port-mapping>
<remember-me>
<request-cache> 要素
<session-management>
<concurrency-control>
<x509>
<filter-chain-map>
<filter-chain>
<filter-security-metadata-source>
20.2.2. WebSocket セキュリティ
<websocket-message-broker>
<intercept-message>
20.2.3. 認証サービス
<authentication-manager>
<authentication-provider>
<jdbc-user-service>
<password-encoder>
<user-service>
<user>
20.2.4. メソッドのセキュリティ
<global-method-security>
<after-invocation-provider>
<pre-post-annotation-handling>
<invocation-attribute-factory>
<post-invocation-advice>
<pre-invocation-advice>
メソッドの保護
<intercept-methods>
<method-security-metadata-source>
<protect>
20.2.5. LDAP 名前空間オプション
LDAP サーバーの定義
<ldap-authentication-provider>
<password-compare>
<ldap-user-service>
20.3. Spring Security の依存関係
20.3.1. spring-security-core
20.3.2. spring-security-remoting
20.3.3. spring-security-web
20.3.4. spring-security-ldap
20.3.5. spring-security-config
20.3.6. spring-security-acl
20.3.7. spring-security-cas
20.3.8. spring-security-openid
20.3.9. spring-security-taglibs
20.4. Spring Security FAQ
20.4.1. 一般的な質問
Spring Security はすべてのアプリケーションセキュリティ要件を処理しますか?
web.xml セキュリティを使用しないのはなぜですか?
どの Java および Spring Framework バージョンが必要ですか?
Spring Security を初めて使用します。HTTPS を介した CAS シングルサインオンをサポートし、特定の URL に対して基本認証をローカルで許可し、複数のバックエンドユーザー情報ソース(LDAP および JDBC)に対して認証するアプリケーションを構築する必要があります。見つけたいくつかの構成ファイルをコピーしましたが、機能しません。
20.4.2. よくある問題
ログインしようとすると、「不正な資格情報」というエラーメッセージが表示されます。どうしてでしょうか?
ログインしようとすると、アプリケーションが「無限ループ」に入ります。
「アクセスが拒否されます(ユーザーは匿名です);」というメッセージで例外が発生します。どうしてでしょうか?
アプリケーションからログアウトした後でも、保護されたページが表示されるのはなぜですか?
「SecurityContext で認証オブジェクトが見つかりませんでした」というメッセージで例外が発生します。どうしてでしょうか?
LDAP 認証が機能しません。
セッション管理
Spring Security の同時セッション制御を使用して、ユーザーが一度に複数回ログインするのを防ぎます。
Spring Security で認証すると、セッション ID が変わるのはなぜですか?
Tomcat(または他のサーブレットコンテナー)を使用しており、ログインページで HTTPS を有効にし、その後 HTTP に戻りました。
HTTP と HTTPS を切り替えていませんが、セッションがまだ失われています
同時セッション制御サポートを使用しようとしていますが、ログアウトしていて許可されたセッションを超えていないと確信しても、再度ログインすることはできません。
Spring Security は、create-session 属性を never に設定することにより、設定していないにもかかわらず、どこかにセッションを作成しています。
POST を実行すると 403 Forbidden が発生する
RequestDispatcher を使用してリクエストを別の URL に転送していますが、セキュリティ上の制約は適用されていません。
Spring Security の <global-method-security> 要素をアプリケーションコンテキストに追加しましたが、Spring MVC コントローラー Bean(Struts アクションなど)にセキュリティアノテーションを追加しても効果はないようです。
確実に認証されたユーザーがいますが、リクエスト中に SecurityContextHolder にアクセスしようとすると、認証が null になります。
認可 JSP タグは、URL 属性を使用するときにメソッドセキュリティアノテーションを考慮しません。
20.4.3. Spring Security アーキテクチャに関する質問
どのパッケージクラス X が含まれているかを知るにはどうすればよいですか
名前空間要素は、従来の Bean 構成にどのようにマッピングされますか?
「ROLE_」とは何を意味し、なぜロール名にそれが必要なのですか?
Spring Security で動作するためにアプリケーションに追加する依存関係を知るにはどうすればよいですか?
組み込み ApacheDS LDAP サーバーを実行するには、どのような依存関係が必要ですか?
UserDetailsService とは何ですか?
20.4.4. 一般的な「Howto」リクエスト
ユーザー名以外の情報でログインする必要があります。
リクエストされた URL のフラグメント値のみが異なる(たとえば、/ foo#bar と /foo#blah? の)異なる intercept-url 制約を適用する方法
UserDetailsService でユーザーの IP アドレス(または他の Web リクエストデータ)にアクセスするにはどうすればよいですか?
UserDetailsService から HttpSession にアクセスするにはどうすればよいですか?
UserDetailsService でユーザーのパスワードにアクセスするにはどうすればよいですか?
アプリケーション内でセキュアな URL を動的に定義するにはどうすればよいですか
LDAP に対して認証するが、データベースからユーザーロールをロードするにはどうすればよいですか?
名前空間によって作成された Bean のプロパティを変更したいのですが、スキーマにはそれをサポートするものが何もありません。
III. リアクティブアプリケーション
21. WebFlux セキュリティ
21.1. 最小限の WebFlux セキュリティ構成
21.2. 明示的な WebFlux セキュリティ構成
22. エクスプロイトに対する保護
22.1. WebFlux 環境向けのクロスサイトリクエストフォージェリ(CSRF)
22.1.1. Spring Security CSRF 保護の使用
適切な HTTP 動詞を使用する
CSRF 保護を構成する
CSRF トークンを含める
22.1.2. CSRF の考慮事項
ログイン
ログアウト
CSRF およびセッションタイムアウト
マルチパート (ファイルアップロード)
HiddenHttpMethodFilter
22.2. セキュリティ HTTP レスポンスヘッダー
22.2.1. デフォルトのセキュリティヘッダー
22.2.2. キャッシュ制御
22.2.3. コンテンツタイプオプション
22.2.4. HTTP 厳格なトランスポートセキュリティ (HSTS)
22.2.5. X-Frame-Options
22.2.6. X-XSS-Protection
22.2.7. コンテンツセキュリティポリシー (CSP)
22.2.8. リファラーポリシー
22.2.9. 機能ポリシー
22.2.10. サイトデータを消去する
22.3. HTTP
22.3.1. HTTPS にリダイレクト
22.3.2. 厳格な輸送セキュリティ
22.3.3. プロキシサーバー構成
23. OAuth2 WebFlux
23.1. OAuth 2.0 ログイン
23.1.1. Spring Boot 2.0 サンプル
初期設定
リダイレクト URI の設定
application.yml を構成する
アプリケーションを起動する
23.1.2. OpenID プロバイダー構成の使用
23.1.3. 明示的な OAuth2 ログイン構成
23.2. OAuth2 クライアント
23.3. OAuth 2.0 リソースサーバー
23.3.1. 依存関係
23.3.2. JWT の最小構成
認可サーバーの指定
スタートアップの期待
ランタイムの期待
認可サーバー JWK セット Uri を直接指定する
ブート自動構成のオーバーライドまたは置換
23.3.3. 信頼できるアルゴリズムの構成
Spring Boot 経由
ビルダーを使用する
単一の非対称キーを信頼する
単一の対称キーを信頼する
認可の構成
検証の構成
イントロスペクションの最小構成
認証後の属性の検索
ブート自動構成のオーバーライドまたは置換
認可の構成
JWT でのイントロスペクションの使用
/userinfo エンドポイントの呼び出し
23.3.4. ベアラートークンの伝播
24. @RegisteredOAuth2AuthorizedClient
25. リアクティブ X.509 認証
26. WebClient
26.1. WebClient OAuth2 のセットアップ
26.2. 暗黙的な OAuth2AuthorizedClient
26.3. 明示的な OAuth2AuthorizedClient
26.4. clientRegistrationId
27. EnableReactiveMethodSecurity
28. リアクティブテストのサポート
28.1. リアクティブメソッドセキュリティのテスト
28.2. WebTestClientSupport
28.2.1. 認証
28.2.2. CSRF サポート
28.2.3. ベアラー認証のテスト
mockJwt() WebTestClientConfigurer
authentication()WebTestClientConfigurer
29. RSocket セキュリティ
29.1. 最小限の RSocket セキュリティ構成
29.2. SecuritySocketAcceptorInterceptor の追加
29.3. RSocket 認証
29.3.1. セットアップ時の認証とリクエスト時
29.3.2. 基本認証
29.3.3. JWT
29.4. RSocket 認証