Web アプリケーションで使用される API エンドポイントのパスワードを保存したいと考えています。
ファイルcatalina-server.xml
に次の構成を入れました
...
<GlobalNamingResources>
<Environment name="paci/connectionUrl" type="java.lang.String" value="http://10.0.0.1:1234/paci/v1.0"/>
<Environment name="paci/adminUser" type="java.lang.String" value="admin"/>
<Environment name="paci/adminPass" svns:secretAlias="Paci.AdminUser.Password" type="java.lang.String" value="password"/>
</GlobalNamingResources>
Cipher Tool を使用するために、このドキュメントを使用して安全なボールトを構成しました。
cipher-tool.properties
Paci.AdminUser.Password=repository/conf/tomcat/catalina-server.xml//Server/GlobalNamingResources/Environment[@name='paci/adminPass'][@value],true
cipher-text.properties
Paci.AdminUser.Password=EnCrYpTeDvAlUe123
Web アプリでは、META-INF/context.xml
JNDI を解決するためにグローバル リソースへのリンクを追加する必要がありました。
...
<Context>
<ResourceLink global="paci/connectionUrl" name="paci/connectionUrl" type="java.lang.String" />
<ResourceLink global="paci/adminUser" name="paci/adminUser" type="java.lang.String" />
<ResourceLink global="paci/adminPass" name="paci/adminPass" type="java.lang.String" />
</Context>
これが私のコードです:
Context initCtx = new InitialContext();
String paciPass = (String) initialContext.lookup("java:comp/env/paci/adminPass");
の値paciPass
は「password」であり、暗号化されたパスワードではありません。ボールトが暗号化されたパスを返さない理由がわかりません。
wso2 の安全なボールトに対して、JNDI のエイリアスを解決するにはどうすればよいですか?