使用jboss JNDI方式加密数据库连接密码

时间:2024-03-15 07:21:20

                    使用jboss JNDI方式加密数据库连接密码

部门由于进行安全检查,需要对数据库连接明文密码进行加密,具体操作过程编写了文档。

1.创建Jboss module(配置dameng数据库后者oracle、mysql等数据库连接中间件)

  • 创建module目录 

   在${jboss_home}\modules\目录下新建com\dameng\main目录

使用jboss JNDI方式加密数据库连接密码

  •    创建module.xml文件,文件内容为:

使用jboss JNDI方式加密数据库连接密码

2.将dameng jdbc支持包拷贝到{jboss_home}\modules\目录下新建com\dameng\main目录下

使用jboss JNDI方式加密数据库连接密码

3. 修改jboss standalone.xml

  • 配置数据库驱动

使用jboss JNDI方式加密数据库连接密码

  Module属性注意与上述配置的moudule.xml中的name属性一致

  • 生成datasource

  在datasources标签下增加datasource标签:

使用jboss JNDI方式加密数据库连接密码

注意jndi-name将在spring-jndi方式配置数据库时作为jndi name属性使用,在pool标签下可以配置数据库连接池的内容,在security标签下配置数据库的用户名和连接的密码,后续进行加密。

4、加密连接密码

  • 使用工具加密密码

  Windows下:

   Java -cp F:\jboss\jboss-as-sheng\modules\org\picketbox\main\picketbox-4.0.7.Final.jar;F:\jboss\jboss-as-sheng\modules\org\jboss\logging\main\jboss-logging-3.1.0.GA.jar  org.picketbox.datasource.security.SecureIdentityLoginModule lcwkd123123

  linux下:

java -cp F:\jboss\jboss-as-sheng\modules\org\picketbox\main\picketbox-4.0.7.Final.jar;F:\jboss\jboss-as-sheng\modules\org\jboss\logging\main\jboss-logging-3.1.0.GA.jar  org.picketbox.datasource.security.SecureIdentityLoginModule lcwkd123123

使用jboss自带的pickebox下的SecureIdentityLoginModule类进行加密,它采用的时blowfish的加密算法,属于对称加密的一种(没有公、私钥)。注意运行路径的正确,windows下与linux下的命令分隔符不同,windows下是“;”,而linux下是“:”。加密的后的密文为:30a64b3a67e66f00d0cbc8eed84e75f5,该密文可重复多次使用,密文的生成与加密密码和加密的路径等相关。

5.增加密码安全认证选项

在<security-domains>标签下新增security-domain子标签

使用jboss JNDI方式加密数据库连接密码

再进行将明文密码进行替换

使用jboss JNDI方式加密数据库连接密码

这样jboss进行读取jndi会将加密过的密文进行正确的解密,以生成datesource。

6.使用Spring Jndi 方式生成datasource

修改spring-context.xml下的

使用jboss JNDI方式加密数据库连接密码

其中jndiname为以上在standalone.xml中配置的datasource标签中的jndi-name,对应起来。