クラス OpenSamlInitializationService
java.lang.ObjectSE
org.springframework.security.saml2.core.OpenSamlInitializationService
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
OpenSAML を使用できるように準備し、適切なデフォルトで構成します。static void
requireInitialize
(ConsumerSE<org.opensaml.core.xml.config.XMLObjectProviderRegistry> registryConsumer) OpenSAML を使用できる状態にし、適切なデフォルトで構成し、提供されたConsumer
SE を使用してXMLObjectProviderRegistry
を変更します。
メソッドの詳細
initialize
public static boolean initialize()OpenSAML を使用できるように準備し、適切なデフォルトで構成します。初期化は、アプリケーションごとに 1 回だけ発生することが保証されています。このメソッドは、アプリケーションの初期段階で初期化がすでに行われている場合、受動的にfalse
を返します。- 戻り値:
- 初期化が実行されたかどうか。OpenSAML を初期化する最初のスレッドは
true
を返し、残りはfalse
を返します。 - 例外:
Saml2Exception
- OpenSAML が初期化に失敗した場合
requireInitialize
public static void requireInitialize(ConsumerSE<org.opensaml.core.xml.config.XMLObjectProviderRegistry> registryConsumer) OpenSAML を使用できる状態にし、適切なデフォルトで構成し、提供されたConsumer
SE を使用してXMLObjectProviderRegistry
を変更します。初期化は、アプリケーションごとに 1 回だけ行われることが保証されています。アプリケーションで初期化がすでに行われている場合、このメソッドは例外をスローします。- パラメーター:
registryConsumer
-XMLObjectProviderRegistry
をさらに構成するためのConsumer
SE- 例外:
Saml2Exception
- 初期化が以前にすでに行われた場合、または OpenSAML が初期化に失敗した場合