为什么编码密码在Liberty中不起作用

问题描述 投票:0回答:1

在尝试使Liberty容器工作时,我遇到以下问题。

对于数据库连接,我在server.xml中有一个authData部分:

<authData id="datasourceAuth" user="test" password="{xor}ABCD"/>

[当我尝试使用未编码的密码运行服务器时,数据库连接可以正常工作,但是在编码密码时,我收到此消息:连接被拒绝(连接被拒绝)。错误代码= -4499,SQLSTATE = 08001 DSRA0010E:SQL状态= 08001,错误代码= -4,499

似乎在建立连接时密码没有被解码,但是我不明白为什么或如果我在配置中缺少某些内容。

websphere-liberty open-liberty
1个回答
0
投票

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/

© www.soinside.com 2019 - 2024. All rights reserved.