クラス 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 booleaninitialize()
      OpenSAML を使用できるように準備し、適切なデフォルトで構成します。
      static voidrequireInitialize​(java.util.function.Consumer<org.opensaml.core.xml.config.XMLObjectProviderRegistry> registryConsumer)
      OpenSAML を使用できるように準備し、適切なデフォルトで構成し、提供されている Consumer を使用して XMLObjectProviderRegistry を変更します。
      • クラス java.lang.Object から継承されたメソッド

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

      • 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 が初期化に失敗した場合