您的位置:首页 > 编程语言 > Java开发

Spring 中的.properties 属性(jdbc.password)加密

2017-01-18 00:00 274 查看
1、复写processProperties方法实现

package com.*.*;

import java.util.Properties;

import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer;

public class PropertyPlaceholderConfigurerTest extends PropertyPlaceholderConfigurer {
protected void processProperties(ConfigurableListableBeanFactory beanFactory, Properties props)
throws BeansException {
String password = props.getProperty("jdbc.password");
String username = props.getProperty("jdbc.username");
try {
if (password != null) {
//解密jdbc.password属性值,并重新设置
//Crypt.decrypt:自己编写的对应的解密方法(本文采用aes算法,aes网上有很多就不写出来了)
props.setProperty("jdbc.password", Crypt.decrypt(password));
}
if (username != null) {
props.setProperty("jdbc.username", Crypt.decrypt(username));
}
super.processProperties(beanFactory, props);
} catch (Exception e) {
e.printStackTrace();
}
}
}


<!-- 不加密时候使用使用spring自带的 -->

2、xml配置

<!-- 不加密时候使用使用spring自带的 -->

<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:jdbc.properties</value>   <value>classpath:roles.properties</value>
</list>
</property>
</bean>


<!-- 加密时候使用自己复写过的 -->

<bean id="propertyConfigurer"
class="com.*.*.PropertyPlaceholderConfigurerTest">
<property name="locations">
<list>
<value>classpath:jdbc.properties</value>
<value>classpath:roles.properties</value>
</list>
</property>
</bean>


3、原文

jdbc.username=F4B2DEB6F8FA201C5783A959CE1C3180
jdbc.password=F4B2DEB6F8FA201C5783A959CE1C3180
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: