クラス 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に基づいて認証を追加します。クラス AbstractConfiguredSecurityBuilder から継承されたメソッド
apply, beforeConfigure, beforeInit, doBuild, getConfigurer, getConfigurers, getOrBuild, getSharedObject, getSharedObjects, objectPostProcessor, postProcess, removeConfigurer, removeConfigurers, setSharedObject, with, withクラス AbstractSecurityBuilder から継承されたメソッド
build, getObjectクラス ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSEインターフェース 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