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
クラスにはデフォルトのコンストラクターが必要です。