Почему закодированный пароль не работает в Liberty - PullRequest
1 голос
/ 21 апреля 2020

При попытке заставить работать контейнер Liberty я сталкиваюсь со следующей проблемой.

Для подключения к базе данных у меня есть такой раздел authData на сервере. xml:

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

Когда я пытаюсь запустить сервер с не закодированным паролем, соединение с базой данных работает как положено, но когда кодируется пароль, я получаю это сообщение: Соединение отказано (Соединение отказано). ERRORCODE = -4499, SQLSTATE = 08001 DSRA0010E: SQL Состояние = 08001, код ошибки = -4,499

Похоже, что пароль не декодируется при настройке соединения, но я не понимаю почему или если я что-то упускаю в конфигурации.

1 Ответ

1 голос
/ 21 апреля 2020

Кодирование паролей источника данных поддерживается в Liberty и должно работать. Я приведу более полный пример, который соответствует стилю конфигурации, который вы используете, а также ссылку на официальный центр знаний do c с собственным примером

Используйте 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/

...