クラス OpenSamlInitializationService
- java.lang.Object
-
- org.springframework.security.saml2.core.OpenSamlInitializationService
public final class OpenSamlInitializationService extends java.lang.Object
OpenSAML を初期化するための初期化サービス。各 Spring Security OpenSAML ベースのコンポーネントは、静的初期化時にinitialize()
メソッドを呼び出します。initialize()
はべき等であり、正しく機能するために OpenSAML を初期化する必要があるカスタムクラスで安全に呼び出すことができます。OpenSAML のInitializationService.initialize()
の代わりに Spring Security および OpenSAML を使用する場合は、このinitialize()
メソッドを呼び出すことをお勧めします。initialize()
の主な目的は、OpenSAML のXMLObjectProviderRegistry
をいくつかの妥当なデフォルトで準備することです。Spring Security がレジストリに加える変更はすべて、このメソッドで行われます。これらのデフォルトをオーバーライドするには、requireInitialize(Consumer)
を呼び出して、レジストリを変更します。static { OpenSamlInitializationService.requireInitialize((registry) -> { registry.setParserPool(...); registry.getBuilderFactory().registerBuilder(...); }); }
requireInitialize(Consumer)
は、アプリケーションごとに 1 回だけ呼び出すことができます。requireInitialize(Consumer)
が呼び出される前にアプリケーションがすでに OpenSAML を初期化した場合、構成の変更は適用されず、例外がスローされます。この理由は、アプリケーションに初期化の順序の課題があり、そうでなければ予測できない状態につながる可能性があるという事実を警告するためです。アプリケーションの複数の場所でレジストリの構成を変更する必要がある場合は、requireInitialize(Consumer)
を複数回呼び出すのではなく、初期化順序の課題を自分で処理する必要があります。- 導入:
- 5.4
メソッドのサマリー
すべてのメソッド 静的メソッド 具象メソッド 修飾子と型 メソッド 説明 static boolean
initialize()
OpenSAML を使用できるように準備し、適切なデフォルトで構成します。static void
requireInitialize(java.util.function.Consumer<org.opensaml.core.xml.config.XMLObjectProviderRegistry> registryConsumer)
OpenSAML を使用できるように準備し、適切なデフォルトで構成し、提供されているConsumer
を使用してXMLObjectProviderRegistry
を変更します。
メソッドの詳細
initialize
public static boolean initialize()
OpenSAML を使用できるように準備し、適切なデフォルトで構成します。初期化は、アプリケーションごとに 1 回だけ発生することが保証されています。このメソッドは、アプリケーションの初期段階で初期化がすでに行われている場合、受動的にfalse
を返します。- 戻り値:
- 初期化が実行されたかどうか。OpenSAML を初期化する最初のスレッドは
true
を返し、残りはfalse
を返します。 - 例外:
Saml2Exception
- OpenSAML が初期化に失敗した場合
requireInitialize
public static void requireInitialize(java.util.function.Consumer<org.opensaml.core.xml.config.XMLObjectProviderRegistry> registryConsumer)
OpenSAML を使用できるように準備し、適切なデフォルトで構成し、提供されているConsumer
を使用してXMLObjectProviderRegistry
を変更します。初期化は、アプリケーションごとに 1 回だけ発生することが保証されています。アプリケーションの初期段階で初期化がすでに行われている場合、このメソッドは例外をスローします。- パラメーター:
registryConsumer
-XMLObjectProviderRegistry
をさらに構成するためのConsumer
- 例外:
Saml2Exception
- 初期化が以前にすでに行われた場合、または OpenSAML が初期化に失敗した場合