在尝试使Liberty容器工作时,我遇到以下问题。
对于数据库连接,我在server.xml中有一个authData部分:
<authData id="datasourceAuth" user="test" password="{xor}ABCD"/>
[当我尝试使用未编码的密码运行服务器时,数据库连接可以正常工作,但是在编码密码时,我收到此消息:连接被拒绝(连接被拒绝)。错误代码= -4499,SQLSTATE = 08001 DSRA0010E:SQL状态= 08001,错误代码= -4,499
似乎在建立连接时密码没有被解码,但是我不明白为什么或如果我在配置中缺少某些内容。
Liberty支持对数据源密码进行编码,并且应该可以正常工作。我将提供一个更完整的示例,使其与您正在使用的配置样式保持一致,并提供带有自己示例的对官方knowledge center doc的引用
使用securityUtility对密码进行编码,
securityUtility encode --encoding=xor test123
输出:
{xor}KzosK25tbA==
在authData上配置值,并在数据源上使用authData,
<authData id="datasourceAuth" user="test" password="{xor}KzosK25tbA=="/>
<dataSource id="testdb" jndiName="jdbc/testdb" containerAuthDataRef="datasourceAuth">
<jdbcDriver libraryRef="db2jcc"/>
<properties.db2.jcc databaseName="TESTDB" serverName="localhost" portNumber="50000"/>
</dataSource>
[认证数据在通过容器认证使用资源引用时适用。
我建议返回并再次尝试所有步骤,以排除出现错别字或复制/粘贴错误的可能性。如果仍然无法解决问题,请在此处提出反对OpenLiberty的理由,https://github.com/OpenLiberty/open-liberty/issues/new/