クラス AuthenticationManagerBuilder
- java.lang.Object
-
- org.springframework.security.config.annotation.AbstractSecurityBuilder<O>
-
- org.springframework.security.config.annotation.AbstractConfiguredSecurityBuilder<AuthenticationManager,AuthenticationManagerBuilder>
-
- org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder
- 実装されたすべてのインターフェース:
ProviderManagerBuilder<AuthenticationManagerBuilder>
,SecurityBuilder<AuthenticationManager>
public class AuthenticationManagerBuilder extends AbstractConfiguredSecurityBuilder<AuthenticationManager,AuthenticationManagerBuilder> implements ProviderManagerBuilder<AuthenticationManagerBuilder>
SecurityBuilder
はAuthenticationManager
の作成に使用されていました。メモリ内認証、LDAP 認証、JDBC ベースの認証、UserDetailsService
の追加、AuthenticationProvider
の追加を簡単に構築できます。- 導入:
- 3.2
コンストラクターのサマリー
コンストラクター コンストラクター 説明 AuthenticationManagerBuilder(ObjectPostProcessor<java.lang.Object> objectPostProcessor)
新しいインスタンスを作成します
メソッドのサマリー
クラス org.springframework.security.config.annotation.AbstractConfiguredSecurityBuilder から継承されたメソッド
apply, beforeConfigure, beforeInit, doBuild, getConfigurer, getConfigurers, getOrBuild, getSharedObject, getSharedObjects, objectPostProcessor, postProcess, removeConfigurer, removeConfigurers, setSharedObject
クラス org.springframework.security.config.annotation.AbstractSecurityBuilder から継承されたメソッド
build, getObject
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
インターフェース org.springframework.security.config.annotation.SecurityBuilder から継承されたメソッド
build
コンストラクターの詳細
AuthenticationManagerBuilder
public AuthenticationManagerBuilder(ObjectPostProcessor<java.lang.Object> objectPostProcessor)
新しいインスタンスを作成します- パラメーター:
objectPostProcessor
- 使用するObjectPostProcessor
インスタンス。
メソッドの詳細
parentAuthenticationManager
public AuthenticationManagerBuilder parentAuthenticationManager(AuthenticationManager authenticationManager)
このAuthenticationManager
が提供されたAuthentication
の認証を試みることができなかった場合に試行される親AuthenticationManager
の提供を許可します。- パラメーター:
authenticationManager
- 現在のAuthenticationManager
が提供されたAuthentication
を認証しようとすることができなかった場合に使用されるAuthenticationManager
- 戻り値:
- 認証型をさらに追加するための
AuthenticationManagerBuilder
authenticationEventPublisher
public AuthenticationManagerBuilder authenticationEventPublisher(AuthenticationEventPublisher eventPublisher)
AuthenticationEventPublisher
を設定します- パラメーター:
eventPublisher
- 使用するAuthenticationEventPublisher
- 戻り値:
- さらにカスタマイズするための
AuthenticationManagerBuilder
eraseCredentials
public AuthenticationManagerBuilder eraseCredentials(boolean eraseCredentials)
- パラメーター:
eraseCredentials
-AuthenticationManager
が認証後にAuthentication
オブジェクトから資格情報をクリアする必要がある場合は true- 戻り値:
- さらにカスタマイズするための
AuthenticationManagerBuilder
inMemoryAuthentication
public InMemoryUserDetailsManagerConfigurer<AuthenticationManagerBuilder> inMemoryAuthentication() throws java.lang.Exception
AuthenticationManagerBuilder
にメモリ内認証を追加し、InMemoryUserDetailsManagerConfigurer
を返して、メモリ内認証のカスタマイズを許可します。また、このメソッドは、
UserDetailsService
がgetDefaultUserDetailsService()
メソッドで使用可能であることを確認します。追加のUserDetailsService
がこのUserDetailsService
をデフォルトとしてオーバーライドする場合があることに注意してください。- 戻り値:
- メモリ内認証のカスタマイズを可能にする
InMemoryUserDetailsManagerConfigurer
- 例外:
java.lang.Exception
- メモリ内認証の追加時にエラーが発生した場合
jdbcAuthentication
public JdbcUserDetailsManagerConfigurer<AuthenticationManagerBuilder> jdbcAuthentication() throws java.lang.Exception
JDBC 認証をAuthenticationManagerBuilder
に追加し、JdbcUserDetailsManagerConfigurer
を返し、JDBC 認証のカスタマイズを許可します。永続データストアで使用する場合は、Flyway や Liquibase などを使用して構成の外部でユーザーを追加し、スキーマを作成してユーザーを追加することで、これらの手順が 1 回だけ実行され、最適な SQL が使用されるようにするのが最適です。
また、このメソッドは、
UserDetailsService
がgetDefaultUserDetailsService()
メソッドで使用可能であることを確認します。追加のUserDetailsService
がこのUserDetailsService
をデフォルトとしてオーバーライドする場合があることに注意してください。デフォルトのスキーマについては、リファレンスのユーザースキーマセクションを参照してください。- 戻り値:
- JDBC 認証のカスタマイズを可能にする
JdbcUserDetailsManagerConfigurer
- 例外:
java.lang.Exception
- JDBC 認証の追加時にエラーが発生した場合
userDetailsService
public <T extends UserDetailsService> DaoAuthenticationConfigurer<AuthenticationManagerBuilder,T> userDetailsService(T userDetailsService) throws java.lang.Exception
渡されたカスタムUserDetailsService
に基づいて認証を追加します。次に、DaoAuthenticationConfigurer
を返し、認証のカスタマイズを許可します。また、このメソッドは、
UserDetailsService
がgetDefaultUserDetailsService()
メソッドで使用可能であることを確認します。追加のUserDetailsService
がこのUserDetailsService
をデフォルトとしてオーバーライドする場合があることに注意してください。- 戻り値:
- DAO 認証のカスタマイズを可能にする
DaoAuthenticationConfigurer
- 例外:
java.lang.Exception
-UserDetailsService
ベースの認証を追加するときにエラーが発生した場合
ldapAuthentication
public LdapAuthenticationProviderConfigurer<AuthenticationManagerBuilder> ldapAuthentication() throws java.lang.Exception
LDAP 認証をAuthenticationManagerBuilder
に追加し、LdapAuthenticationProviderConfigurer
を返して、LDAP 認証のカスタマイズを許可します。このメソッド は、
UserDetailsService
がgetDefaultUserDetailsService()
メソッドで使用可能であることを保証しません。- 戻り値:
- LDAP 認証のカスタマイズを可能にする
LdapAuthenticationProviderConfigurer
- 例外:
java.lang.Exception
- LDAP 認証の追加時にエラーが発生した場合
authenticationProvider
public AuthenticationManagerBuilder authenticationProvider(AuthenticationProvider authenticationProvider)
渡されるカスタムAuthenticationProvider
に基づいて認証を追加します。AuthenticationProvider
の実装は不明であるため、すべてのカスタマイズは外部で行う必要があり、AuthenticationManagerBuilder
はすぐに返されます。このメソッド は、
UserDetailsService
がgetDefaultUserDetailsService()
メソッドで使用可能であることを保証しません。AuthenticationProvider
の追加時にエラーが発生すると、Exception
がスローされることに注意してください。- 次で指定:
- インターフェース
ProviderManagerBuilder<AuthenticationManagerBuilder>
のauthenticationProvider
- 戻り値:
AuthenticationManagerBuilder
にさらに認証を提供できるようにするAuthenticationManagerBuilder
performBuild
protected ProviderManager performBuild() throws java.lang.Exception
クラスからコピーされた説明:AbstractConfiguredSecurityBuilder
サブクラスはこのメソッドを実装して、返されるオブジェクトを構築する必要があります。- 次で指定:
- クラス
AbstractConfiguredSecurityBuilder<AuthenticationManager,AuthenticationManagerBuilder>
のperformBuild
- 戻り値:
- Object が buit であるか、実装で許可されている場合は null
- 例外:
java.lang.Exception
isConfigured
public boolean isConfigured()
AuthenticationManagerBuilder
が null 以外のAuthenticationManager
を作成するように構成されているかどうかを判別します。これは、非 null の親が指定されているか、少なくとも 1 つのAuthenticationProvider
が指定されていることを意味します。SecurityConfigurer
インスタンスを使用する場合、AuthenticationManagerBuilder
はSecurityConfigurer.configure(SecurityBuilder)
メソッドまで構成されません。これは、最後のSecurityConfigurer
がこのメソッドをチェックし、SecurityConfigurer.configure(SecurityBuilder)
メソッドでデフォルト構成を提供できることを意味します。- 戻り値:
AuthenticationManagerBuilder
が構成されている場合は true、そうでない場合は false
getDefaultUserDetailsService
public UserDetailsService getDefaultUserDetailsService()
AuthenticationManagerBuilder
のデフォルトUserDetailsService
を取得します。状況によっては、結果が null になる場合があります。- 戻り値:
AuthenticationManagerBuilder
のデフォルトUserDetailsService