Spring的配置文件是用于指导Spring工厂进行Bean生成、依赖关系注入及Bean示例分发的”图纸”,他是一个或多个标砖的XML文档,J2EE程序员必须学会灵活应用这份”图纸”,准确的表达自己的”生成意图”。Spring配置文件是一个或多个标准的XML文档,applicationContext.xml是Spring的默认配置文件,当容器启动时找不到指定的配置文档时,将会尝试加载这个默认的配置文件。
spring框架在一些对安全性要求较高的生产环境下,配置文件不允许出现明文用户名密码配置,如数据库配置等。本文主要用于解决明文用户名密码加密。
通过继承spring配置类并重写处理方法实现密文解密
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
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中设置密文(根据解密秘钥生成)
1
2
3
4
5
6
7
8
|
<!-- class填写刚才那段代码的类路径--> < bean id = "propertyConfigurer" class = "com.**.EncryptPropertyPlaceholderConfigurer" > < property name = "locations" > < list > < value >classpath:jdbc.properties</ value > </ list > </ property > </ bean > |
总结
以上就是本文关于spring配置文件加密方法示例的全部内容,希望对大家有所帮助。如有不足之处,欢迎留言指出。感谢朋友们对本站的支持。
原文链接:http://www.open-open.com/code/view/1453520072183