yanick技术博客

专注技术-SpringSide,Nutz团队成员

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

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 (方案一)

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

 

 

阅读更多
个人分类: JSP/Java/J2EE
想对作者说点什么? 我来说一句

HG8145华为配置文件新加解密工具

2018年01月17日 888KB 下载

cfg文件解码和生成.rar

2012年06月03日 18KB 下载

没有更多推荐了,返回首页

不良信息举报

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

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭