`
ranyut
  • 浏览: 255508 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

Jboss数据源密码加密[转]

阅读更多
Java代码
先看数据源配置: 

先看数据源配置:
<?xml version="1.0" encoding="UTF-8"?>   
<datasources>   
  <local-tx-datasource>   
    <jndi-name>MySqlDS</jndi-name>   //jndi名字   
    <use-java-context>false</use-java-context>   
    <connection-url>jdbc:mysql://10.16.175.137:3306/test</connection-url>  //URL地址   
    <driver-class>com.mysql.jdbc.Driver</driver-class>  //驱动   
    <user-name>root</user-name>    //用户名     
    <password>123456</password>  //密码   
    <exception-sorter-class-name>   
        org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter   
       </exception-sorter-class-name>   
      <metadata>   
       <type-mapping>mySQL</type-mapping>   
    </metadata>   
  </local-tx-datasource>   
</datasources>  



<?xml version="1.0" encoding="UTF-8"?>
<datasources>
  <local-tx-datasource>
    <jndi-name>MySqlDS</jndi-name>   //jndi名字
    <use-java-context>false</use-java-context>
    <connection-url>jdbc:mysql://10.16.175.137:3306/test</connection-url>  //URL地址
    <driver-class>com.mysql.jdbc.Driver</driver-class>  //驱动
    <user-name>root</user-name>    //用户名  
    <password>123456</password>  //密码
    <exception-sorter-class-name>
		org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter
       </exception-sorter-class-name>
      <metadata>
       <type-mapping>mySQL</type-mapping>
    </metadata>
  </local-tx-datasource>
</datasources>


   看一下这个文件,里面用户名与密码都是以明文方式存储的,这样子对系统的安全而言带来了极大的威协。所以我们要为我们这个明文的密码加一下密,这就是本文的目的.
   2.说到密码加密,这里我们用到了JBoss下的一个类org.jboss.resource.security.SedureIdentityLoginModule,看看我们该如何用它来帮我们的密码加密。
    
    先看个配置数据源的例子(mysql-ds.xml):
    

<?xml version="1.0" encoding="UTF-8"?>   
<datasources>    
  <local-tx-datasource>   
    <jndi-name>MySqlDS</jndi-name>      
    <use-java-context>false</use-java-context>   
    <connection-url>jdbc:mysql://192.168.1.91:3306/atteam</connection-url>   
    <driver-class>com.mysql.jdbc.Driver</driver-class>   
    <security-domain>EncryptDBPassword</security-domain>//这里不用写上你的用户名与密码了,我们可以在login-config.xml里做点手脚,就OK了   
    <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>   
    <metadata>   
       <type-mapping>mySQL</type-mapping>   
    </metadata>   
  </local-tx-datasource>   
</datasources>  


<?xml version="1.0" encoding="UTF-8"?>
<datasources> 
  <local-tx-datasource>
    <jndi-name>MySqlDS</jndi-name>   
    <use-java-context>false</use-java-context>
    <connection-url>jdbc:mysql://192.168.1.91:3306/atteam</connection-url>
    <driver-class>com.mysql.jdbc.Driver</driver-class>
    <security-domain>EncryptDBPassword</security-domain>//这里不用写上你的用户名与密码了,我们可以在login-config.xml里做点手脚,就OK了
    <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>
    <metadata>
       <type-mapping>mySQL</type-mapping>
    </metadata>
  </local-tx-datasource>
</datasources>

接着我们修改server\default\conf\login-config.xml文件,加上下面这一段配置文件



<application-policy name="EncryptDBPassword"> //这里的name应该是你在配置数据源时写的security-domain里的字符串   
     <authentication>   
       <login-module code="org.jboss.resource.security.SecureIdentityLoginModule"    
         flag="required">   
         <module-option name="username">test</module-option> //数据库的用户名   
         <module-option name="password">64c5fd2979a86168</module-option> //数据库的密码,不过是加密过的了   
         <module-option name="managedConnectionFactoryName">jboss.jca:service=LocalTxCM,name=MySqlDS</module-option>   
        //注意name等于你的数据源的jndi-name,这里是MySqlDS   
       </login-module>   
     </authentication>   
 </application-policy>  

 <application-policy name="EncryptDBPassword"> //这里的name应该是你在配置数据源时写的security-domain里的字符串
      <authentication>
        <login-module code="org.jboss.resource.security.SecureIdentityLoginModule" 
          flag="required">
          <module-option name="username">test</module-option> //数据库的用户名
          <module-option name="password">64c5fd2979a86168</module-option> //数据库的密码,不过是加密过的了
          <module-option name="managedConnectionFactoryName">jboss.jca:service=LocalTxCM,name=MySqlDS</module-option>
         //注意name等于你的数据源的jndi-name,这里是MySqlDS
        </login-module>
      </authentication>
  </application-policy>


3.补充一下,这个加密的密码是哪来的
java -cp "D:\TDdownload\jboss-4.2.0.CR1\jboss-4.2.0.CR1\lib\jboss-jmx.jar;D:\TDdownload\jboss-4.2.0.CR1\jboss-4.2.0.CR1\lib\jboss-common.jar;D:\TDdownload\jboss-4.2.0.CR1\jboss-4.2.0.CR1\server\default\lib\jboss-jca.jar;D:\TDdownload\jboss-4.2.0.CR1\jboss-4.2.0.CR1\server\default\lib\jbosssx.jar" org.jboss.resource.security.SecureIdentityLoginModule 123456 


Encoded password: 64c5fd2979a86168

写上你自己的路径和你要加密的密码就行了,我这里要加密的密码是123456,加密过之后就是64c5fd2979a86168
分享到:
评论

相关推荐

    JBoss加密之SedureIdentityLoginModule(数据源连接方式)

    NULL 博文链接:https://tiger-hu.iteye.com/blog/1722598

    JBOSS4.2 基本配置(全)

    JBOSS4.2 基本配置 (包括安装,端口,数据源,加密,控制台登陆安全

    JBoss安全优化

    jboss安全加密:数据源配置密码加密;使用加密的https协议;检测是否设置定时登出;检测是否设置Jboss错误页面重定向...

    JBoss7配置指南及管理员手册

    数据源定义 (Datasource Definitions) 75 4.4.5.1.3. 参考 78 4.4.5.2. 消息 (Messaging) 78 4.4.5.2.1. Connection Factories 78 4.4.5.2.2. Queues and Topics 79 4.4.5.2.3. Dead Letter和Redelivery 80 4.4....

    JBoss7-配置-管理员手册

    4.4.5.1.2. 数据源定义 (Datasource Definitions) 75 4.4.5.1.3. 参考 78 4.4.5.2. 消息 (Messaging) 78 4.4.5.2.1. Connection Factories 78 4.4.5.2.2. Queues and Topics 79 4.4.5.2.3. Dead Letter和Redelivery ...

    class加密,java加密,jar加密-Web虎 1.3

    2.2 增加卖点2:告诉客户他的数据更加安全-他的数据将加密保护,只有客户自己可以正常使用和备份数据 2.3 增加卖点3:告诉客户他的系统更加稳定,不会被病毒黑客侵袭而成为新的病毒传播源 三、Web虎特点: 安全:...

    mumu-core:mumu-core是一个工具核心包,主要包含web项目经常使用的某些组件,mybatis的dao封装和mybatis配置文件扫描器。各种加密工具类各种数据校验类(字符校验,手机号码邮箱重置)序列化工具类(包含java序列化工具, jboss marshalling序列化工具类)日期工具类(日期转字符串,字符串转日期)

    mumu-core核心工具包 mumu-core是一个工具核心包,主要包含web项目经常使用的一些组件,包含: mybatis的dao封装和mybatis配置文件扫描器使用redis缓存的基本配置工具类druid数据源模型函数(加密数据库密码)基本...

    JAVA上百实例源码以及开源项目源代码

    Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密 Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。 设定字符串为“张三,你好,我是李四”...

    基于JAVA+SpringBoot智能交通站务管理系统+项目说明.zip

    (4)、系统支持多数据源运行,数据库可共用也可以相互独立存储,数据库按业务子系统分为: 4.1、站务系统数据库 4.2、保险票数据库 4.3、语音系统数据库 4.4、快件系统数据库 4.5、平台系统数据库 (5)、系统封装...

    JAVA上百实例源码以及开源项目

     Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。  设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang...

    java开源包1

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包11

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包2

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包3

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包6

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包5

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包10

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包4

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包8

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

Global site tag (gtag.js) - Google Analytics