17.3. キーリゾルバー
すべてのビルトインプロバイダーは、1 つ以上のキーリゾルバーの設定をサポートします。キーリゾルバーは、基本的にはレルム名とキーを組み合わせて (${vault.key}
式から取得)、vault からシークレットの取得に使用される最終エントリー名を組み合わせるためのアルゴリズムまたはストラテジーを実装します。keyResolvers
プロパティーは、プロバイダーによって使用されるリゾルバーを設定するために使用されます。この値は、リゾルバー名のコンマ区切りリストです。files-plaintext
プロバイダーの設定例を以下に示します。
<spi name="vault"> <default-provider>files-plaintext</default-provider> <provider name="files-plaintext" enabled="true"> <properties> <property name="dir" value="${jboss.home.dir}/standalone/configuration/vault/" /> <property name="keyResolvers" value="REALM_UNDERSCORE_KEY, KEY_ONLY"/> </properties> </provider> </spi>
リゾルバーは、設定で宣言されるのと同じ順序で実行されます。それぞれのリゾルバーについて、レルムと vault キーを組み合わせるリゾルバーによって生成された最終エントリー名は vault のシークレットの検索に使用されます。シークレットが見つかると、すぐに返されます。そうでない場合には、次のリゾルバーが使用され、空でないシークレットが見つかるか、またはすべてのリゾルバーが試行されるまで継続され、空のシークレットが返されます。上記の例では、最初に REALM_UNDERSCORE_KEY
リゾルバーが使用されます。生成する名前の vault にエントリーが存在する場合は、そのエントリーが返されます。そうでない場合は、KEY_ONLY
リゾルバーが使用されます。生成する名前の vault にエントリーが存在する場合は、そのエントリーが返されます。これがないと、使用されるリゾルバーがなくなったため、空のシークレットが返されます。
現在利用可能なリゾルバーの一覧は以下のようになります。
-
KEY_ONLY
: レルム名は無視され、vault 式からのキーがそのまま使用されます。 -
REALM_UNDERSCORE_KEY
: レルムと鍵はアンダースコア_
を使用して結合されます。レルムまたはキーのいずれかでアンダースコアが存在する点は、別のアンダースコアでエスケープされます。したがって、レルムがmaster_realm
と呼ばれ、キーがsmtp_key
の場合は、組み合わせたキーはmaster__realm_smtp__key
になります。 -
REALM_FILESEPARATOR_KEY
: レルムと鍵は、プラットフォームファイルの区切り文字を使用して組み合わせます。これは、ディレクトリー構造を使用してレルムでキーを分類する場合に便利です。
ビルトインプロバイダーにリゾルバーが設定されていない場合、REALM_UNDERSCORE_KEY
はデフォルトで選択されます。