`
dyllove98
  • 浏览: 1424555 次
  • 性别: Icon_minigender_1
  • 来自: 济南
博客专栏
73a48ce3-d397-3b94-9f5d-49eb2ab017ab
Eclipse Rcp/R...
浏览量:39495
4322ac12-0ba9-3ac3-a3cf-b2f587fdfd3f
项目管理checkList...
浏览量:80828
4fb6ad91-52a6-307a-9e4f-816b4a7ce416
哲理故事与管理之道
浏览量:134088
社区版块
存档分类
最新评论

配置jndi数据源以及数据库密码加密

 
阅读更多

 闲来无事觉得以前用过的一些东西过一段时间会忘记,所以开始想着发博文,第一次发博文,如有问题大家请多多指正。

    1,首先在application.xml里面配置数据源

1
2
3
4
5
    <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
         <property name="jndiName">
              <value>java:comp/env/jdbc/userDataSource</value>
         </property>
     </bean>

    2,配置web.xml,刚开始配置的时候,由于没有配置web.xml导致一直连接不上,后面查了一些资料才发现web.xml也需要配置。

1
2
3
4
5
6
  <resource-ref>
     <description>my DB Connection</description>
     <res-ref-name>jdbc/userDataSource</res-ref-name>
     <res-type>javax.sql.DataSource</res-type>
     <res-auth>Container</res-auth>
  </resource-ref>

    3,打开tomcat目录下的conf,找到context.xml在里面配置数据库连接

    

1
2
3
4
5
6
7
8
9
10
11
12
13
14
    <Resource name="jdbc/userDataSource"   
               auth="Container"
               type="javax.sql.DataSource"                  
               driverClassName="com.mysql.jdbc.Driver"   
               url="jdbc:mysql://ip/myDataDaseName"   
               username="root"
               password="password"
               maxIdle="40"    
               maxWait="4000" 
               maxActive="250" 
               removeAbandoned="true"
               removeAbandonedTimeout="180"
               logAbandoned="true"
               factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory" />  

现在jndi应该是可以连接数据库了。

注意:如果修改了context里面的数据库连接,导致启动项目连接的还是以前的数据库地址请把eclipse里面Servers下面的tomcat删除掉,然后重新加入就OK了。

 

以上只是简单的用jndi连接数据库。

 

现在说一下怎么把数据库密码进行加密。其实很简单,tomcat里面的这个数据库连接配置最后还是指向

1
org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory

这个连接,反编译一看,发现就是在这个里面获取用户名密码以及其他参数的,所以我们在这里面动下手脚就OK了。源码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
value = properties.getProperty("password");
    if (value != null) {
      dataSource.setPassword(value);
    }
 
    value = properties.getProperty("url");
    if (value != null) {
      dataSource.setUrl(value);
    }
 
    value = properties.getProperty("username");
    if (value != null) {
      dataSource.setUsername(value);
    }

我是把这个BasicDataSourceFactory文件复制改名重写了一遍,改后的代码。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 value = properties.getProperty("password");
    if (value != null) {
      dataSource.setPassword(decode(value)); //解密操作
  }
  //自定义的解密方法,里面引用了AESEncrypt数字签名加密文件,config.properties里面配置了key钥
 private static String decode(String password) throws Exception {
    byte[] bas = AESEncrypt.parseHexStr2Byte(password);
    InputStream is = new FileInputStream("/opt/config/config.properties");
    Properties prop = new Properties();
 
    prop.load(is);
    String key = prop.getProperty("key");
    is.close();
    byte[] decr = AESEncrypt.decrypt(bas, key);
    return new String(decr);
  }

然后factory连接指向这个新建的文件就行了

1
 factory="org.apache.tomcat.dbcp.dbcp.DecodeBasicDataSourceFactory"

重写写一个类,是文件方便切换,如果不要加密直接指向BasicDataSourceFactory就行了。

1
2
分享到:
评论

相关推荐

    JNDI数据源配置(tomcat)

    在上面的配置中, `&lt;Resource&gt;` 节点定义了一个私有数据源, `name` 属性指定了数据源的名称, `type` 属性指定了数据源的类型, `user` 属性指定了数据库连接的用户名, `password` 属性指定了数据库连接的密码, `...

    Webshpere配置JNDI数据源[归纳].pdf

    下面将详细介绍如何在WebSphere中配置JNDI数据源。 首先,配置JNDI数据源涉及到安全性的设置。在WebSphere管理控制台中,进入“安全性” -&gt; “JAAS配置” -&gt; “J2C认证数据”部分。在这里,你需要为数据库创建一个...

    JavaWeb:Tomcat下配置数据源连接数据库.pdf

    6. **JDBC驱动**:配置数据源时,需要指定用于连接数据库的JDBC驱动类名(driverClassName),以及数据库的JDBC URL。确保驱动类的jar包在Tomcat的CLASSPATH中。 7. **数据库连接管理**:数据库连接是有限的资源,...

    jndi加密.zip

    通过JNDI,我们可以将敏感信息(如数据库密码)从源代码中分离出来,存储在一个安全的地方,比如受保护的服务器环境变量或外部配置文件中。这样可以避免密码明文出现在配置文件中,降低了因源码泄露导致的安全风险。...

    weblogic 10.3 的部署以及配置数据源

    3. 配置连接池:填写数据源的基本信息,包括JNDI名称、数据库驱动类名、URL、用户名和密码。同时设置连接池参数,如最大连接数、最小连接数、超时时间等。 4. 测试连接:配置完成后,可以测试数据源连接,确保能成功...

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

    在这个配置文件中,你需要声明SedureIdentityLoginModule,并提供相关的配置参数,比如数据源的JNDI名称、用户名、密码、加密算法等。例如: ```xml &lt;module-option name="dsJndiName"&gt;java:jboss/datasources/...

    tomcat数据源连接池配置

    上述配置中,`name`属性是数据源的JNDI名称,`auth`指认证方式,`type`指定数据源类型,`driverClassName`是数据库驱动类名,`url`是数据库连接地址,`username`和`password`是数据库登录凭证,最后的`maxActive`、...

    解密JBoss和Weblogic数据源连接字符串和控制台密码 _ WooYun知识库1

    在未进行加密处理时,JBoss的数据源配置通常位于`%JBOSS_HOME%\server\%appname%\deploy`目录下的XML文件中,例如针对Oracle数据库的配置文件名为`oracle-ds.xml`。其中包含的配置项如下: - `&lt;jndi-name&gt;`: 数据源...

    tomcat jndi ssl

    1. "tomcat7.0配置JNDI数据源的几种方式.docx" - 这个文档可能详细介绍了在Tomcat 7.0中设置JNDI数据源的不同方法,包括XML配置、Context元素的使用、以及可能的第三方库(如Apache DBCP或C3P0)集成。 2. "tomcat...

    WAS数据库连接配置文档

    - 在WAS中,数据源是通过JNDI(Java Naming and Directory Interface)名字服务来查找和访问的,这使得多应用程序可以共享同一个数据库连接池。 2. **配置步骤** - **创建数据库驱动程序定义** 首先,我们需要在...

    JBoss7配置Mysql5.1数据源.pdf

    - 配置JBoss的数据源JNDI名称。 - 在JBoss配置文件中添加数据库连接驱动信息。 - 设置数据库连接信息,包括URL、用户名和密码。 - 配置数据库连接池参数,如最大连接数、最小连接数、连接的最大空闲时间等。 - ...

    Weblogic_JMS+配置数据源配置

    - **步骤**:在WebLogic管理控制台中,需要创建JDBC数据源,设置JNDI名称、连接URL、用户名、密码、驱动类型等参数。 - **连接池**:数据源通常包含一个连接池,用于管理和复用数据库连接,以减少创建和关闭连接的...

    基于 SpringBoot 多数据源 动态数据源 主从分离 快速启动器 支持分布式事务

    支持数据库敏感配置信息 加密(可自定义) ENC()。支持每个数据库独立初始化表结构schema和数据库database。支持无数据源启动,支持懒加载数据源(需要的时候再创建连接)。支持 自定义注解 ,需继承DS(3.2.0+)。提供...

    comcat配置jndi

    除了在`context.xml`中配置数据源外,还可以通过其他方式配置JNDI资源。例如,可以通过环境变量或者系统属性来设置JNDI资源的值。 ##### 5.3 测试JNDI资源 确保JNDI资源正确配置后,可以通过编写简单的测试程序来...

    websphere7.0下配置10g数据源

    在IBM WebSphere Application Server (WAS) 7.0环境下配置10g数据源,是为了让WebSphere能够连接到Oracle 10g数据库,以便应用能够处理和存储数据。以下是一份详细的步骤指南: 1. **配置JDBC提供程序**: - 首先...

    weblogic服务器上有关SSL、CAS、数据源配置,应用部署描述。 .doc

    在WebLogic控制台上,通过“Data Sources”菜单创建新的数据源,设置数据源名称、JNDI名称、数据库连接信息等。 **2. 测试连接** 创建完成后,测试数据源与数据库的连接,确保配置正确无误。 #### 四、应用部署...

    WSAD5.0数据源配置

    - 在数据源的配置中,设置数据源名称、JNDI名称以及认证别名等信息。 - 配置连接字符串(URL),例如:“jdbc:oracle:thin:@192.168.0.99:1521:jet”。 #### 四、注意事项 - **JNDI名称**:非常重要,因为它是...

    was应用部署、JNDI、应用调优;IHS部署

    数据源是用于连接数据库的重要配置项,在 WAS 中配置数据源的步骤如下: 1. **配置 J2C 认证数据**:首先设置数据库用户的认证信息,包括用户名、密码等。 2. **新建数据源**:选择集群作用域并新建数据源。指定...

    WebLogic 8.1 + MySQL + MyEclipse数据源的配置.doc

    总结来说,配置WebLogic 8.1、MySQL和MyEclipse的数据源涉及创建Java Web工程、添加数据库驱动、配置WebLogic数据源、编写与数据库交互的代码、部署应用以及进行测试。这个过程对于任何依赖于数据库的Java Web应用都...

    基于 SpringBoot的多数据源 动态数据源 主从分离 快速启动器 支持分布式事务

    支持数据库敏感配置信息 加密(可自定义) ENC()。 支持每个数据库独立初始化表结构schema和数据库database。 支持无数据源启动,支持懒加载数据源(需要的时候再创建连接)。 支持 自定义注解 ,需继承DS(3.2.0+)。 ...

Global site tag (gtag.js) - Google Analytics