第4章 Elytron クライアントのデフォルト SSLcontext セキュリティープロバイダーを JBoss EAP クライアントで使用する
Java 仮想マシン (JVM) が、Elytron クライアント設定を使用してデフォルトの SSLcontext を提供するようにするには、WildFlyElytronClientDefaultSSLContextProvider を使用できます。このプロバイダーを使用して、デフォルトの SSLContext を要求する際に、クライアントライブラリーが Elytron クライアント設定を自動的に使用するようにします。
4.1. Elytron クライアントのデフォルト SSL コンテキストセキュリティープロバイダー リンクのコピーリンクがクリップボードにコピーされました!
Elytron クライアントは、Java 仮想マシン (JVM) 全体のデフォルト SSL コンテキストの登録に使用できる Java セキュリティープロバイダー org.wildfly.security.auth.client.WildFlyElytronClientDefaultSSLContextProvider を提供します。
WildFlyElytronClientDefaultSSLContextProvider プロバイダーは以下のように動作します。
プロバイダーは、
SSLContext.getDefault()メソッドが呼び出されると、SSLContextをインスタンス化します。SSLContextは、以下のいずれかの場所から取得された認証コンテキストから開始します。- プロバイダーへの引数として渡された Elytron クライアント設定ファイル。
ファイルシステム上で自動的に検出された
wildfly-config.xmlファイル。詳細は、デフォルト設定アプローチ を参照してください。プロバイダーに引数として渡されるクライアント設定ファイルが優先されます。
SSLContext.getDefault()メソッドが呼び出されると、JVM はプロバイダーによってインスタンス化されたSSLContextを返します。Elytron クライアントには複数の SSL コンテキストを設定できるため、ルールを使用し、接続用に単一の SSL コンテキストを選択します。デフォルトの SSL コンテキストは、すべてのルールに一致するものです。このプロバイダーは、このデフォルトの SSL コンテキストを返します。
デフォルトの SSLContext が設定されていないか、設定が存在しない場合は、プロバイダーが無視されます。
WildFlyElytronClientDefaultSSLContextProvider プロバイダーを登録すると、SSLContext.getDefault() メソッドを使用するすべてのクライアントライブラリーは、コードで Elytron クライアント API を使用せずに Elytron クライアント設定を使用します。
プロバイダーを登録するには、以下のアーティファクトにランタイム依存関係を追加する必要があります。
-
wildfly-elytron-client -
wildfly-client-config
プロバイダーは、プログラムを用いて、クライアントコードに、または java.security ファイルに静的に登録できます。登録して使用するプロバイダーを動的に決定する場合は、プログラムによる登録を使用します。
プロバイダーのプログラムでの登録
以下に示すように、プロバイダーをクライアントコードにプログラムで登録できます。
Security.insertProviderAt(new WildFlyElytronClientDefaultSSLContextProvider(CONFIG_FILE_PATH), 1);
Security.insertProviderAt(new WildFlyElytronClientDefaultSSLContextProvider(CONFIG_FILE_PATH), 1);
プロバイダーの静的登録
以下に示すように、プロバイダーを java.security ファイルに登録できます。
security.provider.1=org.wildfly.security.auth.client.WildFlyElytronClientDefaultSSLContextProvider <CONFIG_FILE_PATH>
security.provider.1=org.wildfly.security.auth.client.WildFlyElytronClientDefaultSSLContextProvider <CONFIG_FILE_PATH>