给hibernate配置文件加密解密的方案

原创 2012年03月29日 15:18:38

Hibernate配置文件hibernate.cfg.xml中存放了我们连接数据库的相关信息,其中设计到许多数据库的敏感信息,比如连接地址,用户名和密码,有时候我们交由发布组进行发布时并不希望他们看到数据库的连接密码,就需要对hibernate配置文件中的部分信息进行加密

 

给hibernate配置文件加密解密的方案的方案有很多。

 

第一步:新建自定义的SessionFactionBean,并继承AnnotationSessionFactoryBean

package com;
import javax.sql.DataSource;
import org.apache.commons.dbcp.BasicDataSource;
import org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean;

public class ZtkjAnnotationSessionFactoryBean extends AnnotationSessionFactoryBean {

	@Override
	public void setDataSource(DataSource dataSource) {
		String password =((BasicDataSource) dataSource).getPassword();  
		//通过ZtkjCryptUtil类进行解密    
		String decryPassword = ZtkjCryptUtil.decodeStr(password);   
		//重新赋值
		((BasicDataSource) dataSource).setPassword(decryPassword);  
		super.setDataSource(dataSource);
	}	
}

ZtkjCryptUtil.java是加密和解密类(DES对称加密,大家自己可以写我)


第二步:修改Spring配置文件

	<!-- Hibernate配置 -->
	<bean id="sessionFactory" class="com.ZtkjAnnotationSessionFactoryBean">
		<property name="dataSource" ref="dataSource" />
		<property name="namingStrategy">
			<bean class="org.hibernate.cfg.ImprovedNamingStrategy" />
		</property>
		<property name="hibernateProperties">
			<props>
				<prop key="hibernate.dialect">${hibernate.dialect}</prop>
				<prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
				<prop key="hibernate.format_sql">${hibernate.format_sql}</prop>
				<prop key="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</prop>
				<prop key="hibernate.cache.provider_configuration_file_resource_path">ehcache/ehcache-hibernate-local.xml</prop>
				<prop key="hibernate.connection.provider_class">com.ZtkjDriverManagerConnectionProvider</prop>
			</props>
		</property>
		<property name="packagesToScan" value="com.chinacnit" />
	</bean>

(注:仅修改了第一行代码 class="com.ZtkjAnnotationSessionFactoryBean")


 

这样就可以完成了加密配置文件,参考了http://www.lupaworld.com/tutorial-view-aid-1847.html

如果你的配置密码的地方配置在hibertate属性下面,可以参考http://aguu125.iteye.com/blog/579402

 

还有更好的方法,可惜没有弄出来。http://sklst.iteye.com/blog/283798 (方案一)

这博客里面提到的【连接供应器】,不知道那里没有配置好,总是没有进去自己建的【连接供应器】

 

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

hibernate加载hibernate.cfg.xml文件

1、默认方式加载hibernate.cfg.xml文件,编写hibernate的操作类,通过Configuration cfg = new Configuration().configure("hib...

hibernate的hibernate.cfg.xml的用户名密码加密

原文:http://blog.csdn.net/sdbany/article/details/3132809 hibernate的cfg.xml配置文件用户名密码是明文存放,配置文件里的参数信息解析...

JAVA,hibernate配置文件加密

1.hibernate配置文件

Java实现properties配置文件加密解密

Java实现properties配置文件加密解密 在 JavaEE 配置文件中,例如 XML 或者 properties 文件,由于某些敏感信息不希望普通人员看见,则可以采用加密的方式存储,程序读...

spring下jdbc配置文件进行加密解密

最近做一个项目,安全上有点要求,就是要对数据库相关的配置进行加密,配置文件如下: #加密前#datasource.type=mysql #datasource.driverClassName=...

JAVA DES 对配置文件加密解密

简单的JAVA DES 对配置文件进行加密解密
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)