18.6.3. 外部ソースからのキーストアパスワードの取得
Vault 設定で EXT、EXTC、CMD、CMDC、または CLASS メソッドを使用して、Java キーストアのパスワードを取得することもできます。
<vault-option name="KEYSTORE_PASSWORD" value="[here]"
この方法を以下で説明します。
- これは、そのまま使えるコマンドを参照します。ここでの
{EXT}...は、実際のコマンドです。例:{EXT}/usr/bin/getmypassword --section 1 --query company。/usr/bin/getmypasswordを実行すると、パスワードを標準出力に表示し、Security Vault のキーストアのパスワードとして使用します。この例では --section 1 と --query company のオプションを使用しています。 {EXTC[:expiration_in_millis]}...: 実際のコマンドを参照します。ここでの、... は、プラットフォームコマンドを実行するために Runtime.exec(String) メソッドに渡される、実際のコマンドラインです。コマンド出力の最初の行がパスワードとして使用されます。EXTC バリアントは expiration_in_millis ミリ秒のパスワードをキャッシュします。デフォルトのキャッシュ有効期限は 0 (ゼロ) です。これは、キャッシュ内のアイテムが期限切れにならないことを意味します。例:{EXTC:120000}/usr/bin/getmypassword --section 1 --query company。/usr/bin/getmypasswordの出力がキャッシュに含まれているかどうかを確認します。出力が含まれている場合はそれを使用します。出力がない場合は、コマンドを実行してこれをキャッシュに出力して使用します。この例では、キャッシュは 2 分 (120000 ミリ秒) で期限切れになります。{CMD}...or{CMDC[:expiration_in_millis]}...: 一般的なコマンドは 「,」 (コンマ) で区切られた文字列です。最初の部分は実際のコマンドで、追加の部分はパラメーターを表します。コンマにバックスラッシュを付けることで、パラメーターの一部として維持することができます。例:{CMD}/usr/bin/getmypassword,--section,1,--query,company{CLASS[@jboss_module_spec]}classname[:ctorargs]: [:ctorargs] は、クラス名から : (コロン) によって区切られるオプションの文字列です。これは、クラス名 ctor に渡されます。ctorargs は文字列のコンマ区切りの一覧です。例:{CLASS@org.test.passwd}org.test.passwd.ExternamPassworProvider.この例では、org.test.passwdモジュールからのorg.test.passwd.ExternamPassworProviderクラスを読み込んで、toCharArray()メソッドを使用し、パスワードを取得します。toCharArray()が利用できない場合はtoString()メソッドを使用します。org.test.passwd.ExternamPassworProviderクラスにはデフォルトのコンストラクターが必要です。