Red Hat Training

A Red Hat training course is available for Red Hat JBoss Enterprise Application Platform

13.9. 数据源安全性

数据源安全指的是加密或模糊处理数据源连接的密码。这些密码可以以纯文本形式存储在配置文件中,但这代表了安全风险。

数据源安全性的首选解决方案是使用安全域或密码库。以下是每个示例。

使用安全域保护数据源

定义了数据源的安全域。

 <security-domain name="DsRealm" cache-type="default">
  <authentication>
    <login-module code="ConfiguredIdentity" flag="required">
      <module-option name="userName" value="sa"/>
      <module-option name="principal" value="sa"/>
      <module-option name="password" value="sa"/>
    </login-module>
  </authentication>
</security-domain>
注意

如果安全域将与多个数据源一起使用,则安全域中应禁用缓存。这可以通过将 cache-type 属性的值设置为 none 或删除属性 altoget 来实现。但是,如果需要缓存,则应为每个数据源使用单独的安全域。

然后,数据源配置引用 DsRealm 安全域。

<datasources>
  <datasource jndi-name="java:jboss/datasources/securityDs"
    pool-name="securityDs">
    <connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1</connection-url>
      <driver>h2</driver>
      <new-connection-sql>select current_user()</new-connection-sql>
      <security>
        <security-domain>DsRealm</security-domain>
      </security>
    </datasource>
</datasources>

有关使用安全域的更多信息,请参阅 如何配置身份管理 指南。

使用密码 Vault 保护数据源

<security>
  <user-name>admin</user-name>
  <password>${VAULT::ds_ExampleDS::password::N2NhZDYzOTMtNWE0OS00ZGQ0LWE4MmEtMWNlMDMyNDdmNmI2TElORV9CUkVBS3ZhdWx0}</password>
</security>

有关使用密码 Vault 的更多信息,请参阅如何配置服务器安全指南