Я развернул файлы WAR проекта на серверах Tomcat и Jboss, а источник базы данных извлекается через JNDI.
Ниже приведен пример конфигурации БД, определенный в серверных контейнерах. У меня есть жестко закодированные учетные данные базы данных в этих файлах.
Конфигурация базы данных Jboss 7 определена в XML-файле конфигурации
<datasources>
<datasource jndi-name="java:/test" pool-name="test" statistics-enabled="true">
<connection-url>jdbc:mysql://localhost/test?zeroDateTimeBehavior=convertToNull</connection-url>
<driver>mysql</driver>
<pool>
<min-pool-size>5</min-pool-size>
<max-pool-size>60</max-pool-size>
</pool>
<security>
<user-name>abc</user-name>
<password>abc123</password>
</security>
<validation>
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"/>
<validate-on-match>true</validate-on-match>
<background-validation>false</background-validation>
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter"/>
</validation>
<timeout>
<blocking-timeout-millis>5000</blocking-timeout-millis>
<idle-timeout-minutes>35</idle-timeout-minutes>
<query-timeout>300</query-timeout>
</timeout>
</datasource>
<datasources>
Конфигурации базы данных Tomcat 8 в conf/context.xml
<Context>
<!-- Default set of monitored resources. If one of these changes, the -->
<!-- web application will be reloaded. -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<WatchedResource>${catalina.base}/conf/web.xml</WatchedResource>
<!-- Uncomment this to disable session persistence across Tomcat restarts -->
<!--
<Manager pathname="" />
-->
<Resource name="datasource/test" auth="Container"
type="com.mchange.v2.c3p0.ComboPooledDataSource"
factory="org.apache.naming.factory.BeanFactory"
user="abc"
password="abc123"
jdbcUrl="jdbc:mysql://localhost:3306/jacplus"
driverClass="com.mysql.jdbc.Driver"
minPoolSize="2"
initialPoolSize="30"
maxPoolSize="50"
idleConnectionTestPeriod="600"
acquireRetryAttempts="30"/>
</Context>
Из соображений безопасности мне потребовалось переместить эти жестко запрограммированные учетные данные в диспетчер секретов AWS и получить их во время выполнения. Во всех сообщениях, которые я видел, упоминается использование API/SDK непосредственно из кода, ни один из найденных мною сообщений не говорит об интеграции с сервером.
Мой вопрос: есть ли способ интегрировать менеджер секретов AWS с серверами приложений tomcat и JBoss и использовать источник данных в качестве JNDI?