首页 > 代码库 > jboss7 vault 数据源密码加密 使用

jboss7 vault 数据源密码加密 使用


今天一个项目的客户提出了一个审计要求,数据库的密码不能以明文存储在文件中,当然产品使用的是jboss容器,jboss提供的标准加密的的方式,看我另一篇文章

http://blog.csdn.net/iberr/article/details/40896479


当时兴高采烈的告诉客户,这个没有问题!

问题来了,这个产品为新版本,本身就对数据库密码进行加密处理了,但是...不是用的普通的加密方式,而是用了密匙文件进行加密的. 最后咨询了产品支持,才明白了,下面讨论一下,本人也有很多问题不理解


生成密匙文件就不说了,度娘有很多了


首先,这个是Jboss7的数据源配置,如下:

<datasource enabled="true" jndi-name="java:/jdbc/PRD1_WH1" jta="true" pool-name="jdbc/PRD1_WH1" use-java-context="true">
	<connection-url>jdbc:oracle:thin:@wmsdb:1521:SCPRD</connection-url>
	<driver>infor10</driver>
	<pool>
		<min-pool-size>1</min-pool-size>
		<max-pool-size>100</max-pool-size>
		<use-strict-min>true</use-strict-min>
	</pool>
	<security>
		<user-name>enterprise</user-name>
		<password>${VAULT::jdbc/PRD1_WH1::password::ZDBiODM4OTktMTkxMy00YjExLTllNWUtYWJmZTA1ZTY2N2Y4TElORV9CUkVBS3ZhdWx0}</password>
	</security>
	<new-connection-sql>ALTER SESSION SET NLS_DATE_FORMAT = 'yyyy/mm/dd hh24:mi:ss'</new-connection-sql>
</datasource>
请看 <password> 节点,和jboss提供的那个加密方式可完全不一样

与数据源配置文件同目录下有密匙文件



那么问题来了,如何去改呢?

{jboss-home}/bin/vault.bat/sh 执行该文件,如下:


选择 0 


这时候让我输入加密文件的目录,上面我们提到过和数据源配置文件在同一目录,所以就是 {jboss-home}/{server}/configuration/

如图:


回车后提示我们输入密匙文件路径,同样输入 {jboss-home}/{server}/configuration/vault.keystore


其它的提示输入密匙密码之类的,这里可能和生成密匙有关



输完之后,提示输入密匙别名,也是生成密匙的时候设置的(输入错误后续都无法进行)


出现以上界面就证明前面都成功了,可以开始生成密文了,选择 0 



注意:${VAULT::[Vault Block]::[Attribute Name]::[Attribute Name]}

以上生成完成了,将上面的字符串替换数据源的即可

datasource enabled="true" jndi-name="java:/jdbc/PRD1_WH1" jta="true" pool-name="jdbc/PRD1_WH1" use-java-context="true">
	<connection-url>jdbc:oracle:thin:@wmsdb:1521:SCPRD</connection-url>
	<driver>infor10</driver>
	<pool>
		<min-pool-size>1</min-pool-size>
		<max-pool-size>100</max-pool-size>
		<use-strict-min>true</use-strict-min>
	</pool>
	<security>
		<user-name>enterprise</user-name>
		<password>${VAULT::testBlock::password::NGRmZWZiZjItOTgxYS00NWZiLWI0NTktMDQ4YTQzZjdlNTJlTElORV9CUkVBS3ZhdWx0}</password>
	</security>
	<new-connection-sql>ALTER SESSION SET NLS_DATE_FORMAT = 'yyyy/mm/dd hh24:mi:ss'</new-connection-sql>
</datasource>


希望大家完善一下,多交流




jboss7 vault 数据源密码加密 使用