我想为将用于任何 webapps 的 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.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
在网络应用程序中,我必须添加指向全局资源的链接,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
是“密码”而不是加密密码。我不知道为什么保险库没有返回加密的通行证。
我必须对 wso2 中的安全保险库做些什么来解析 JNDI 中的别名?