Spring Security リファレンス

作者

Ben Alex , Luke Taylor , Rob Winch , Gunnar Hillert , Joe Grandja , Jay Bryant

5.0.19.RELEASE

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


目次

I. 序文
1. 入門
2. 導入
2.1. Spring Security とは何ですか?
2.2. ヒストリー
2.3. リリース番号
2.4. Spring Security の入手
2.4.1. Maven での使用
Maven リポジトリ
Spring Framework Bom
2.4.2. Gradle
Gradle リポジトリ
Spring 4.0.x および Gradle の使用
2.4.3. プロジェクトモジュール
コア - spring-security-core.jar
リモーティング - spring-security-remoting.jar
Web - spring-security-web.jar
構成 - spring-security-config.jar
LDAP - spring-security-ldap.jar
OAuth 2.0 コア -spring-security-oauth2-core.jar
OAuth 2.0 クライアント -spring-security-oauth2-client.jar
OAuth 2.0 JOSE-spring-security-oauth2-jose.jar
ACL - spring-security-acl.jar
CAS - spring-security-cas.jar
OpenID - spring-security-openid.jar
テスト - spring-security-test.jar
2.4.4. ソースをチェックアウトする
3. Spring Security 5.0 の新機能
3.1. 新機能
4. サンプルとガイド (ここで始める)
5. Java 構成
5.1. Hello Web セキュリティ Java 構成
5.1.1. AbstractSecurityWebApplicationInitializer
5.1.2. Spring が存在しない AbstractSecurityWebApplicationInitializer
5.1.3. AbstractSecurityWebApplicationInitializer と Spring MVC
5.2. HttpSecurity
5.3. Java 構成とフォームログイン
5.4. リクエストを承認する
5.5. ログアウトの処理
5.5.1. LogoutHandler
5.5.2. LogoutSuccessHandler
5.5.3. その他のログアウト関連の参照
5.6. WebFlux セキュリティ
5.6.1. 最小限の WebFlux セキュリティ構成
5.6.2. 明示的な WebFlux セキュリティ構成
5.7. OAuth 2.0 ログイン
5.7.1. Spring Boot 2.0 サンプル
初期設定
リダイレクト URI の設定
application.yml を構成する
アプリケーションを起動する
5.7.2. ClientRegistration
5.7.3. Spring Boot 2.0 プロパティマッピング
5.7.4. ClientRegistrationRepository
5.7.5. CommonOAuth2Provider
5.7.6. カスタムプロバイダープロパティの構成
5.7.7. Spring Boot 2.0 自動構成のオーバーライド
ClientRegistrationRepository@Bean を登録する
WebSecurityConfigurerAdapter を提供する
自動構成を完全にオーバーライドする
5.7.8. Spring Boot 2.0 を使用しない Java 構成
5.7.9. OAuth2AuthorizedClient/OAuth2AuthorizedClientService
5.7.10. 追加リソース
5.8. 認証
5.8.1. インメモリ認証
5.8.2. JDBC 認証
5.8.3. LDAP 認証
5.8.4. AuthenticationProvider
5.8.5. UserDetailsService
5.9. 複数の HttpSecurity
5.10. メソッドのセキュリティ
5.10.1. EnableGlobalMethodSecurity
5.10.2. GlobalMethodSecurityConfiguration
5.10.3. EnableReactiveMethodSecurity
5.11. 構成済みオブジェクトの後処理
5.12. カスタム DSL
6. セキュリティ名前空間の構成
6.1. 導入
6.1.1. 名前空間の設計
6.2. セキュリティ名前空間の構成の開始
6.2.1. web.xml の構成
6.2.2. 最小限の <http> 構成
6.2.3. フォームおよび基本ログインオプション
デフォルトのログイン後の宛先の設定
6.2.4. ログアウト処理
6.2.5. 他の認証プロバイダーの使用
パスワードエンコーダーの追加
6.3. 高度な Web 機能
6.3.1. Remember-Me 認証
6.3.2. HTTP/HTTPS チャネルセキュリティの追加
6.3.3. セッション管理
タイムアウトの検出
同時セッション制御
セッション固定攻撃保護
6.3.4. OpenID サポート
属性交換
6.3.5. レスポンスヘッダー
6.3.6. 独自のフィルターを追加する
カスタム AuthenticationEntryPoint の設定
6.4. メソッドのセキュリティ
6.4.1. <global-method-security> 要素
protect-pointcut を使用したセキュリティポイントカットの追加
6.5. デフォルトの AccessDecisionManager
6.5.1. AccessDecisionManager のカスタマイズ
6.6. 認証マネージャーと名前空間
7. サンプルアプリケーション
7.1. チュートリアルサンプル
7.2. 連絡先
7.3. LDAP サンプル
7.4. OpenID サンプル
7.5. CAS サンプル
7.6. JAAS サンプル
7.7. 事前認証サンプル
8. Spring Security コミュニティ
8.1. 課題追跡
8.2. 参加する
8.3. さらに詳しい情報
II. アーキテクチャと実装
9. 技術概要
9.1. ランタイム環境
9.2. コアコンポーネント
9.2.1. SecurityContextHolder、SecurityContext、および認証オブジェクト
現在のユーザーに関する情報を取得する
9.2.2. UserDetailsService
9.2.3. GrantedAuthority
9.2.4. 要約
9.3. 認証
9.3.1. Spring Security の認証とは何ですか?
9.3.2. SecurityContextHolder のコンテンツを直接設定する
9.4. Web アプリケーションでの認証
9.4.1. ExceptionTranslationFilter
9.4.2. AuthenticationEntryPoint
9.4.3. 認証メカニズム
9.4.4. リクエスト間の SecurityContext の保存
9.5. Spring Security のアクセス制御(認可)
9.5.1. セキュリティと AOP のアドバイス
9.5.2. セキュアオブジェクトと AbstractSecurityInterceptor
構成属性とは何ですか?
RunAsManager
AfterInvocationManager
セキュアオブジェクトモデルの拡張
9.6. ローカライゼーション
10. コアサービス
10.1. AuthenticationManager、ProviderManager、および AuthenticationProvider
10.1.1. 認証成功時の資格情報の消去
10.1.2. DaoAuthenticationProvider
10.2. UserDetailsService の実装
10.2.1. インメモリ認証
10.2.2. JdbcDaoImpl
権限グループ
10.3. パスワードエンコーディング
10.3.1. パスワード履歴
10.3.2. DelegatingPasswordEncoder
パスワード保存形式
パスワードエンコーディング
パスワード照合
はじめに
トラブルシューティング
10.3.3. BCryptPasswordEncoder
10.3.4. Pbkdf2PasswordEncoder
10.3.5. SCryptPasswordEncoder
10.3.6. その他 PasswordEncoders
10.4. Jackson サポート
III. テスト
11. テスト方法のセキュリティ
11.1. セキュリティテストのセットアップ
11.2. @WithMockUser
11.3. @WithAnonymousUser
11.4. @WithUserDetails
11.5. @WithSecurityContext
11.6. メタアノテーションのテスト
12. Spring MVC テスト統合
12.1. MockMvc および Spring Security のセットアップ
12.2. SecurityMockMvcRequestPostProcessors
12.2.1. CSRF 保護を使用したテスト
12.2.2. Spring MVC テストでユーザーとしてテストを実行する
12.2.3. Spring MVC テストで RequestPostProcessor を使用してユーザーとして実行する
Spring MVC テストでアノテーション付きでユーザーとして実行する
12.2.4. HTTP 基本認証のテスト
12.3. SecurityMockMvcRequestBuilders
12.3.1. フォームベース認証のテスト
12.3.2. ログアウトのテスト
12.4. SecurityMockMvcResultMatchers
12.4.1. 認証されていないアサーション
12.4.2. 認証されたアサーション
13. WebFlux サポート
13.1. リアクティブメソッドセキュリティ
13.2. WebTestClientSupport
13.2.1. 認証
13.2.2. CSRF サポート
IV. Web アプリケーションセキュリティ
14. セキュリティフィルターチェーン
14.1. DelegatingFilterProxy
14.2. FilterChainProxy
14.2.1. フィルターチェーンのバイパス
14.3. フィルターの順序
14.4. リクエストのマッチングと HttpFirewall
14.5. 他のフィルターベースフレームワークで使用
14.6. 高度なネームスペース設定
15. コアセキュリティフィルター
15.1. FilterSecurityInterceptor
15.2. ExceptionTranslationFilter
15.2.1. AuthenticationEntryPoint
15.2.2. AccessDeniedHandler
15.2.3. SavedRequest および RequestCache インターフェース
15.3. SecurityContextPersistenceFilter
15.3.1. SecurityContextRepository
15.4. UsernamePasswordAuthenticationFilter
15.4.1. 認証の成功と失敗に関するアプリケーション Flow
16. サーブレット API の統合
16.1. Servlet 2.5+ 統合
16.1.1. HttpServletRequest.getRemoteUser()
16.1.2. HttpServletRequest.getUserPrincipal()
16.1.3. HttpServletRequest.isUserInRole(String)
16.2. Servlet 3+ 統合
16.2.1. HttpServletRequest.authenticate(HttpServletRequest,HttpServletResponse)
16.2.2. HttpServletRequest.login(String,String)
16.2.3. HttpServletRequest.logout()
16.2.4. AsyncContext.start(Runnable)
16.2.5. 非同期サーブレットのサポート
16.3. Servlet 3.1+ 統合
16.3.1. HttpServletRequest#changeSessionId()
17. 基本認証およびダイジェスト認証
17.1. BasicAuthenticationFilter
17.1.1. 構成
17.2. DigestAuthenticationFilter
17.2.1. 構成
18. Remember-Me 認証
18.1. 概要
18.2. 単純なハッシュベースのトークンアプローチ
18.3. 永久トークンアプローチ
18.4. Remember-Me インターフェースと実装
18.4.1. TokenBasedRememberMeServices
18.4.2. PersistentTokenBasedRememberMeServices
19. クロスサイトリクエストフォージェリ (CSRF)
19.1. CSRF 攻撃
19.2. シンクロナイザートークンパターン
19.3. CSRF 保護を使用する場合
19.3.1. CSRF 保護と JSON
19.3.2. CSRF およびステートレスブラウザーアプリケーション
19.4. Spring Security CSRF 保護の使用
19.4.1. 適切な HTTP 動詞を使用する
19.4.2. CSRF 保護を構成する
19.4.3. CSRF トークンを含める
フォームサブミット
Ajax および JSON リクエスト
CookieCsrfTokenRepository
19.5. CSRF に関する警告
19.5.1. タイムアウト
19.5.2. ログイン
19.5.3. ログアウト
19.5.4. マルチパート (ファイルアップロード)
Spring Security の前に MultipartFilter を配置する
アクションに CSRF トークンを含める
19.5.5. HiddenHttpMethodFilter
19.6. デフォルトのオーバーライド
20. CORS
21. セキュリティ HTTP レスポンスヘッダー
21.1. デフォルトのセキュリティヘッダー
21.1.1. キャッシュ制御
21.1.2. コンテンツタイプオプション
21.1.3. HTTP 厳格なトランスポートセキュリティ (HSTS)
21.1.4. HTTP 公開キーの固定 (HPKP)
21.1.5. X-Frame-Options
21.1.6. X-XSS-Protection
21.1.7. コンテンツセキュリティポリシー (CSP)
コンテンツセキュリティポリシーの構成
追加リソース
21.1.8. リファラーポリシー
リファラーポリシーの構成
21.2. カスタムヘッダー
21.2.1. 静的ヘッダー
21.2.2. ヘッダーライター
21.2.3. DelegatingRequestMatcherHeaderWriter
22. セッション管理
22.1. SessionManagementFilter
22.2. SessionAuthenticationStrategy
22.3. 並行性制御
22.3.1. 現在認証されているユーザーとそのセッションについて SessionRegistry を照会する
23. 匿名認証
23.1. 概要
23.2. 構成
23.3. AuthenticationTrustResolver
24. WebSocket セキュリティ
24.1. WebSocket の設定
24.2. WebSocket 認証
24.3. WebSocket 認証
24.3.1. WebSocket 認可に関する注意
メッセージタイプの WebSocket 認可
宛先での WebSocket 認可
24.3.2. 送信メッセージ
24.4. 同一生成元ポリシーの強制
24.4.1. なぜ同じ起源なのでしょうか?
24.4.2. Spring WebSocket 許可されたオリジン
24.4.3. CSRF を Stomp ヘッダーに追加する
24.4.4. WebSockets 内で CSRF を無効にする
24.5. SockJS での作業
24.5.1. SockJS とフレームオプション
24.5.2. SockJS とリラックスした CSRF
V. 認可
25. 認可アーキテクチャ
25.1. 権限
25.2. 呼び出し前の処理
25.2.1. AccessDecisionManager
25.2.2. 投票ベースの AccessDecisionManager 実装
RoleVoter
AuthenticatedVoter
カスタム投票者
25.3. 呼び出し処理後
25.4. 階層的なロール
26. セキュアなオブジェクトの実装
26.1. AOP Alliance(MethodInvocation)セキュリティインターセプター
26.1.1. 明示的な MethodSecurityInterceptor 設定
26.2. AspectJ(JoinPoint)セキュリティインターセプター
27. 式ベースのアクセス制御
27.1. 概要
27.1.1. 一般的な組み込み式
27.2. Web セキュリティ式
27.2.1. Web セキュリティ式で Bean を参照する
27.2.2. Web セキュリティ式のパス変数
27.3. メソッドセキュリティ式
27.3.1. @Pre および @Post アノテーション
@PreAuthorize および @PostAuthorize を使用したアクセス制御
@PreFilter および @PostFilter を使用したフィルタリング
27.3.2. 組み込み式
PermissionEvaluator インターフェース
メソッドセキュリティメタアノテーション
VI. 追加のトピック
28. ドメインオブジェクトセキュリティ (ACL)
28.1. 概要
28.2. 主なコンセプト
28.3. 入門
29. 事前認証シナリオ
29.1. 事前認証フレームワーククラス
29.1.1. AbstractPreAuthenticatedProcessingFilter
J2eeBasedPreAuthenticatedWebAuthenticationDetailsSource
29.1.2. PreAuthenticatedAuthenticationProvider
29.1.3. Http403ForbiddenEntryPoint
29.2. 具体的な実装
29.2.1. リクエストヘッダー認証 (Siteminder)
Siteminder の構成例
29.2.2. Java EE コンテナー認証
30. LDAP 認証
30.1. 概要
30.2. Spring Security での LDAP の使用
30.3. LDAP サーバーの構成
30.3.1. 組み込みテストサーバーの使用
30.3.2. バインド認証の使用
30.3.3. 権限の読み込み
30.4. 実装クラス
30.4.1. LdapAuthenticator の実装
共通の機能
BindAuthenticator
PasswordComparisonAuthenticator
30.4.2. LDAP サーバーへの接続
30.4.3. LDAP 検索オブジェクト
FilterBasedLdapUserSearch
30.4.4. LdapAuthoritiesPopulator
30.4.5. Spring Bean の構成
30.4.6. LDAP 属性とカスタマイズされた UserDetails
30.5. Active Directory 認証
30.5.1. ActiveDirectoryLdapAuthenticationProvider
Active Directory エラーコード
31. OAuth 2.0 ログイン  —  高度な構成
31.1. OAuth 2.0 ログインページ
31.2. 認可エンドポイント
31.2.1. AuthorizationRequestRepository
31.3. リダイレクトエンドポイント
31.4. トークンエンドポイント
31.4.1. OAuth2AccessTokenResponseClient
31.5. UserInfo エンドポイント
31.5.1. ユーザー権限のマッピング
GrantedAuthoritiesMapper を使用する
OAuth2UserService を使用した委譲ベースの戦略
31.5.2. カスタム OAuth2User の構成
31.5.3. OAuth 2.0 UserService
31.5.4. OpenID Connect 1.0 UserService
32. JSP タグライブラリ
32.1. Taglib の宣言
32.2. 承認タグ
32.2.1. テストのためのタグ認証の無効化
32.3. 認証タグ
32.4. accesscontrollist タグ
32.5. csrfInput タグ
32.6. csrfMetaTags タグ
33. Java 認証および認可サービス(JAAS)プロバイダー
33.1. 概要
33.2. AbstractJaasAuthenticationProvider
33.2.1. JAAS CallbackHandler
33.2.2. JAAS AuthorityGranter
33.3. DefaultJaasAuthenticationProvider
33.3.1. InMemoryConfiguration
33.3.2. DefaultJaasAuthenticationProvider の構成例
33.4. JaasAuthenticationProvider
33.5. サブジェクトとして実行
34. CAS 認証
34.1. 概要
34.2. CAS の仕組み
34.2.1. Spring Security と CAS 相互作用シーケンス
34.3. CAS クライアントの構成
34.3.1. サービスチケット認証
34.3.2. シングルログアウト
34.3.3. CAS を使用したステートレスサービスへの認証
プロキシ許可チケットを取得するための CAS の構成
プロキシチケットを使用したステートレスサービスの呼び出し
34.3.4. 代理チケット認証
35. X.509 認証
35.1. 概要
35.2. Web アプリケーションへの X.509 認証の追加
35.3. Tomcat で SSL をセットアップする
36. Run-As 認証の置き換え
36.1. 概要
36.2. 構成
37. Spring Security 暗号モジュール
37.1. 導入
37.2. 暗号化
37.2.1. BytesEncryptor
37.2.2. TextEncryptor
37.3. キージェネレーター
37.3.1. BytesKeyGenerator
37.3.2. StringKeyGenerator
37.4. パスワードエンコーディング
38. 並行性サポート
38.1. DelegatingSecurityContextRunnable
38.2. DelegatingSecurityContextExecutor
38.3. Spring Security 並行性クラス
39. Spring MVC 統合
39.1. @EnableWebMvcSecurity
39.2. MvcRequestMatcher
39.3. @AuthenticationPrincipal
39.4. Spring MVC 非同期統合
39.5. Spring MVC と CSRF の統合
39.5.1. 自動トークンインクルージョン
39.5.2. CsrfToken の解決
VII. Spring Data 統合
40. Spring Data および Spring Security の構成
41. @Query 内のセキュリティ表現
VIII. 付録
42. セキュリティデータベーススキーマ
42.1. ユーザースキーマ
42.1.1. グループ権限
42.2. 永続的ログイン(Remember-Me)スキーマ
42.3. ACL スキーマ
42.3.1. HyperSQL
42.3.2. PostgreSQL
42.3.3. MySQL および MariaDB
42.3.4. Microsoft SQL Server
42.3.5. Oracle データベース
43. セキュリティ名前空間
43.1. Web アプリケーションセキュリティ
43.1.1. <debug>
43.1.2. <http>
<http> の属性
<http> の子要素
43.1.3. <access-denied-handler>
<access-denied-handler> の親要素
<access-denied-handler> の属性
43.1.4. <cors>
<cors> 属性
<cors> の親要素
43.1.5. <headers>
<headers> 属性
<headers> の親要素
<headers> の子要素
43.1.6. <cache-control>
<cache-control> の属性
<cache-control> の親要素
43.1.7. <hsts>
<hsts> の属性
<hsts> の親要素
43.1.8. <hpkp>
<hpkp> の属性
<hpkp> の親要素
43.1.9. <pins>
<pins> の子要素
43.1.10. <pin>
<pin> 属性
<pin> の親要素
43.1.11. <content-security-policy>
<content-security-policy> の属性
<content-security-policy> の親要素
43.1.12. <referrer-policy>
<referrer-policy> の属性
<referrer-policy> の親要素
43.1.13. <frame-options>
<frame-options> 属性
<frame-options> の親要素
43.1.14. <xss-protection>
<xss-protection> 属性
<xss-protection> の親要素
43.1.15. <content-type-options>
<content-type-options> 属性
<content-type-options> の親要素
43.1.16. <header>
<header-attributes> 属性
<header> の親要素
43.1.17. <anonymous>
<anonymous> の親要素
<anonymous> 属性
43.1.18. <csrf>
<csrf> の親要素
<csrf> の属性
43.1.19. <custom-filter>
<custom-filter> の親要素
<custom-filter> 属性
43.1.20. <expression-handler>
<expression-handler> の親要素
<expression-handler> の属性
43.1.21. <form-login>
<form-login> の親要素
<form-login> 属性
43.1.22. <http-basic>
<http-basic> の親要素
<http-basic> の属性
43.1.23. <http-firewall> 要素
<http-firewall> の属性
43.1.24. <intercept-url>
<intercept-url> の親要素
<intercept-url> の属性
43.1.25. <jee>
<jee> の親要素
<jee> 属性
43.1.26. <logout>
<logout> の親要素
<logout> の属性
43.1.27. <openid-login>
<openid-login> の親要素
<openid-login> の属性
<openid-login> の子要素
43.1.28. <attribute-exchange>
<attribute-exchange> の親要素
<attribute-exchange> 属性
<attribute-exchange> の子要素
43.1.29. <openid-attribute>
<openid-attribute> の親要素
<openid-attribute> の属性
43.1.30. <port-mappings>
<port-mappings> の親要素
<port-mappings> の子要素
43.1.31. <port-mapping>
<port-mapping> の親要素
<port-mapping> の属性
43.1.32. <remember-me>
<remember-me> の親要素
<remember-me> 属性
43.1.33. <request-cache> 要素
<request-cache> の親要素
<request-cache> の属性
43.1.34. <session-management>
<session-management> の親要素
< セッション管理 > 属性
<session-management> の子要素
43.1.35. <concurrency-control>
<concurrency-control> の親要素
<concurrency-control> の属性
43.1.36. <x509>
<x509> の親要素
<x509> の属性
43.1.37. <filter-chain-map>
<filter-chain-map> の属性
<filter-chain-map> の子要素
43.1.38. <filter-chain>
<filter-chain> の親要素
<filter-chain> 属性
43.1.39. <filter-security-metadata-source>
<filter-security-metadata-source> の属性
<filter-security-metadata-source> の子要素
43.2. WebSocket セキュリティ
43.2.1. <websocket-message-broker>
<websocket-message-broker> の属性
<websocket-message-broker> の子要素
43.2.2. <intercept-message>
<intercept-message> の親要素
<intercept-message> の属性
43.3. 認証サービス
43.3.1. <authentication-manager>
<authentication-manager> 属性
<authentication-manager> の子要素
43.3.2. <authentication-provider>
<authentication-provider> の親要素
<authentication-provider> 属性
<authentication-provider> の子要素
43.3.3. <jdbc-user-service>
<jdbc-user-service> の属性
43.3.4. <password-encoder>
<password-encoder> の親要素
<password-encoder> 属性
43.3.5. <user-service>
<user-service> の属性
<user-service> の子要素
43.3.6. <user>
<user> の親要素
<user> 属性
43.4. メソッドのセキュリティ
43.4.1. <global-method-security>
<global-method-security> の属性
<global-method-security> の子要素
43.4.2. <after-invocation-provider>
<after-invocation-provider> の親要素
<after-invocation-provider> 属性
43.4.3. <pre-post-annotation-handling>
<pre-post-annotation-handling> の親要素
<pre-post-annotation-handling> の子要素
43.4.4. <invocation-attribute-factory>
<invocation-attribute-factory> の親要素
<invocation-attribute-factory> 属性
43.4.5. <post-invocation-advice>
<post-invocation-advice> の親要素
<post-invocation-advice> の属性
43.4.6. <pre-invocation-advice>
<pre-invocation-advice> の親要素
<pre-invocation-advice> 属性
43.4.7. メソッドの保護
<protect-pointcut> の親要素
<protect-pointcut> の属性
43.4.8. <intercept-methods>
<intercept-methods> の属性
<intercept-methods> の子要素
43.4.9. <method-security-metadata-source>
<method-security-metadata-source> の属性
<method-security-metadata-source> の子要素
43.4.10. <protect>
<protect> の親要素
<protect> 属性
43.5. LDAP 名前空間オプション
43.5.1. LDAP サーバーの定義
<ldap-server> の属性
43.5.2. <ldap-authentication-provider>
<ldap-authentication-provider> の親要素
<ldap-authentication-provider> の属性
<ldap-authentication-provider> の子要素
43.5.3. <password-compare>
<password-compare> の親要素
<password-compare> の属性
<password-compare> の子要素
43.5.4. <ldap-user-service>
<ldap-user-service> の属性
44. Spring Security の依存関係
44.1. spring-security-core
44.2. spring-security-remoting
44.3. spring-security-web
44.4. spring-security-ldap
44.5. spring-security-config
44.6. spring-security-acl
44.7. spring-security-cas
44.8. spring-security-openid
44.9. spring-security-taglibs
45. プロキシサーバー構成
46. Spring Security FAQ
46.1. 一般的な質問
46.1.1. Spring Security はすべてのアプリケーションセキュリティ要件を処理しますか?
46.1.2. web.xml セキュリティを使用しないのはなぜですか?
46.1.3. どの Java および Spring Framework バージョンが必要ですか?
46.1.4. Spring Security を初めて使用します。HTTPS を介した CAS シングルサインオンをサポートし、特定の URL に対して基本認証をローカルで許可し、複数のバックエンドユーザー情報ソース(LDAP および JDBC)に対して認証するアプリケーションを構築する必要があります。見つけたいくつかの構成ファイルをコピーしましたが、機能しません。何が間違っているためしょうか?
46.2. よくある問題
46.2.1. ログインしようとすると、「不正な資格情報」というエラーメッセージが表示されます。どうしてでしょうか?
46.2.2. ログインしようとすると、アプリケーションが「無限ループ」に入ります。
46.2.3. 「アクセスが拒否されます(ユーザーは匿名です);」というメッセージで例外が発生します。どうしてでしょうか?
46.2.4. アプリケーションからログアウトした後でも、保護されたページが表示されるのはなぜですか?
46.2.5. 「SecurityContext で認証オブジェクトが見つかりませんでした」というメッセージで例外が発生します。どうしてでしょうか?
46.2.6. LDAP 認証が機能しません。構成の何が問題になっていますか?
46.2.7. セッション管理
46.2.8. Spring Security の同時セッション制御を使用して、ユーザーが一度に複数回ログインするのを防ぎます。ログイン後に別のブラウザウィンドウを開いても、再度ログインすることはできません。なぜ複数回ログインできるのですか?
46.2.9. Spring Security で認証すると、セッション ID が変わるのはなぜですか?
46.2.10. Tomcat(またはその他のサーブレットコンテナー)を使用しており、ログインページで HTTPS を有効にして、その後 HTTP に切り替えています。機能しません。認証後にログインページに戻ります。
46.2.11. HTTP と HTTPS を切り替えていませんが、セッションがまだ失われています
46.2.12. 同時セッション制御サポートを使用しようとしていますが、ログアウトしていて許可されたセッションを超えていないと確信しても、再度ログインすることはできません。
46.2.13. Spring Security は、create-session 属性を never に設定することにより、設定していないにもかかわらず、どこかにセッションを作成しています。
46.2.14. POST を実行すると 403 Forbidden が発生する
46.2.15. RequestDispatcher を使用してリクエストを別の URL に転送していますが、セキュリティ上の制約は適用されていません。
46.2.16. Spring Security の <global-method-security> 要素をアプリケーションコンテキストに追加しましたが、Spring MVC コントローラー Bean(Struts アクションなど)にセキュリティアノテーションを追加しても効果はないようです。
46.2.17. 確実に認証されたユーザーがいますが、リクエスト中に SecurityContextHolder にアクセスしようとすると、認証が null になります。ユーザー情報が表示されないのはなぜですか?
46.2.18. 認可 JSP タグは、URL 属性を使用するときにメソッドセキュリティアノテーションを考慮しません。
46.3. Spring Security アーキテクチャに関する質問
46.3.1. どのパッケージクラス X が含まれているかを知るにはどうすればよいですか
46.3.2. 名前空間要素は、従来の Bean 構成にどのようにマッピングされますか?
46.3.3. 「ROLE_」とは何を意味し、なぜロール名にそれが必要なのですか?
46.3.4. Spring Security で動作するためにアプリケーションに追加する依存関係を知るにはどうすればよいですか?
46.3.5. 組み込み ApacheDS LDAP サーバーを実行するには、どのような依存関係が必要ですか?
46.3.6. UserDetailsService とは何ですか?
46.4. 一般的な「Howto」リクエスト
46.4.1. ユーザー名以外の情報でログインする必要があります。追加のログインフィールド(会社名など)のサポートを追加するにはどうすればよいですか?
46.4.2. リクエストされた URL のフラグメント値のみが異なる(たとえば、/ foo#bar と /foo#blah? の)異なる intercept-url 制約を適用する方法
46.4.3. UserDetailsService でユーザーの IP アドレス(または他の Web リクエストデータ)にアクセスするにはどうすればよいですか?
46.4.4. UserDetailsService から HttpSession にアクセスするにはどうすればよいですか?
46.4.5. UserDetailsService でユーザーのパスワードにアクセスするにはどうすればよいですか?
46.4.6. アプリケーション内でセキュアな URL を動的に定義するにはどうすればよいですか
46.4.7. LDAP に対して認証するが、データベースからユーザーロールをロードするにはどうすればよいですか?
46.4.8. 名前空間によって作成された Bean のプロパティを変更したいのですが、スキーマにはそれをサポートするものが何もありません。名前空間の使用を放棄する前に何ができますか?