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