クラス OpenSamlInitializationService

java.lang.ObjectSE
org.springframework.security.saml2.core.OpenSamlInitializationService

public final class OpenSamlInitializationService extends ObjectSE
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 を使用できる状態にし、適切なデフォルトで構成し、提供された ConsumerSE を使用して XMLObjectProviderRegistry を変更します。

    クラス java.lang.ObjectSE から継承されたメソッド

    clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSE
  • メソッドの詳細

    • 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 を使用できる状態にし、適切なデフォルトで構成し、提供された ConsumerSE を使用して XMLObjectProviderRegistry を変更します。初期化は、アプリケーションごとに 1 回だけ行われることが保証されています。アプリケーションで初期化がすでに行われている場合、このメソッドは例外をスローします。
      パラメーター:
      registryConsumer - XMLObjectProviderRegistry をさらに構成するための ConsumerSE
      例外:
      Saml2Exception - 初期化が以前にすでに行われた場合、または OpenSAML が初期化に失敗した場合