Как получить новый пароль из кибер-арка при повторном подключении к базе данных - PullRequest
0 голосов
/ 21 декабря 2018

У нас есть приложение, в котором паролем базы данных управляет cyber-ark system/vault.. Для этого я создал компонент для получения пароля и введите пароль в c3p0 data-source bean.

.Конфигурация кода / компонента для того же.

<bean id="dsPassword" class="com.company.project.util.FetchPasswordFromCyberArk">
    <property name="cyberarkAppID" value="${cyberark.APP_ID}" />
    <property name="cyberarkQuery" value="${cyberark.QUERY}" />
    <property name="user" value="${db.username}" />
</bean>

<!-- default maxPoolSize: 15, minPoolSize: 3 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
    <property name="jdbcUrl" value="${db.url}" />
    <property name="driverClass" value="com.ibm.db2.jcc.DB2Driver" />
    <property name="user" value="${db.username}" />
    <property name="password" value="#{dsPassword.dsPasswordFromCyberArk}" />
    <property name="maxIdleTime" value="300"/>
    <property name="testConnectionOnCheckin" value= "true"/>
    <property name="testConnectionOnCheckout" value= "true"/>
    <property name="preferredTestQuery" value="SELECT 1 FROM SYSIBM.SYSDUMMY1"/>
</bean>

Теперь, когда пароль меняется в cyber-ark, соединения в пуле разрываются.Затем всякий раз, когда он пытается восстановить соединение после изменения пароля в кибер-ковчеге, диспетчер пула должен получить новый пароль, а не тот, который кэшируется.На данный момент менеджер пула хранит старый пароль и пытается соединиться с ним (в результате не удается соединиться).пожалуйста, предложите, если есть какой-либо способ справиться с этой ситуацией.

Дайте мне знать, если я что-то пропустил.

...