重新连接数据库时如何从Cyber​​ ark获取新密码

时间:2018-12-21 17:19:05

标签: java database-connection connection-pooling c3p0

我们有一个应用程序,其中数据库密码由cyber-ark system/vault.管理 为此,我创建了一个用于获取密码的bean,并在c3p0 data-source bean.

中传递密码
  

请找到相同的代码/ 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中更改密码,连接就会在池中断开连接。然后,每当在网络柜中更改密码后尝试重新连接时,池管理器都应获取新密码,而不是已缓存的密码。截至目前,池管理器正在存储旧密码并尝试使用该旧密码进行连接(结果是无法连接)。请提出是否有办法解决这种情况。

让我知道我是否错过了任何事情。

0 个答案:

没有答案