spring配置文件加密
2024-08-30 14:47:43
原文:http://www.open-open.com/code/view/1453520072183
spring框架在一些对安全性要求较高的生产环境下,配置文件不允许出现明文用户名密码配置,如数据库配置等。本文主要用于解决明文用户名密码加密。
通过继承spring配置类并重写处理方法实现密文解密
public class EncryptPropertyPlaceholderConfigurer extends PropertyPlaceholderConfigurer {
private String[] encryptPropNames = {"username", "password"}; @Override
protected void processProperties(ConfigurableListableBeanFactory beanFactory,
Properties props) throws BeansException {
try {
for (int i = 0;i<encryptPropNames.length;i++){
String value = props.getProperty(encryptPropNames[i]);
if (value != null) {
props.setProperty(encryptPropNames[i],new String(DES.decrypt(new BASE64Decoder().decodeBuffer(value), "解密秘钥")));
} }
super.processProperties(beanFactory, props);
} catch (Exception e) {
e.printStackTrace();
throw new BeanInitializationException(e.getMessage());
}
}
}
配置applicationContext.xml文件,并在jdbc.properties中设置密文(根据解密秘钥生成)
<!-- class填写刚才那段代码的类路径-->
<bean id="propertyConfigurer" class="com.**.EncryptPropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:jdbc.properties</value>
</list>
</property>
</bean>
最新文章
- 消息队列 Kafka 的基本知识及 .NET Core 客户端
- Java程序,猜大小游戏
- JS获取checkbox的个数
- [bzoj1103][POI2007]大都市meg(树状数组+dfs序)
- UIkit框架之UIPickerView
- [Xamarin] 製作Options Menu、Intent 呼叫網址和Market (转帖)
- Keytool生成csr
- percona-xtrabackup 文档
- raise_application_error用法
- html网页代码各种名称及作用
- boost signal2 slot_base
- 无需Visual Studio,5容易的 - 分为报告
- CSS预处理器的对比 — Sass、Less和Stylus
- kafka 入门笔记 #1
- 【hibernate 初探】之 关系映射,ORM
- Android使用ViewPager实现导航菜单
- idea启动tomcat报错:Error during artifact deployment. See server log for details.
- Linux Expect自动化交互脚本简介
- LeetCode 346. Moving Average from Data Stream (数据流动中的移动平均值)$
- Shell脚本——cat/EOF输出多行