编写支持加密属性文件的实现类
通过以上分析,我们设计一个支持加密属性文件的增强型PropertyPlaceholderConfigurer,其代码如所示:
代码清单 2 DecryptPropertyPlaceholderConfigurer
package com.baobaotao; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.security.Key; import java.util.Properties; import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer; import org.springframework.core.io.Resource; import org.springframework.util.DefaultPropertiesPersister; import org.springframework.util.PropertiesPersister; public class DecryptPropertyPlaceholderConfigurer extends PropertyPlaceholderConfigurer ...{ private Resource[] locations; ① 重新定义父类中的这个同名属性 private Resource keyLocation; ② 用于指定密钥文件 public void setKeyLocation(Resource keyLocation) ...{ this.keyLocation = keyLocation; } public void setLocations(Resource[] locations) ...{ this.locations = locations; } public void loadProperties(Properties props) throws IOException ...{ if (this.locations != null) ...{ PropertiesPersister propertiesPersister = new DefaultPropertiesPersister(); for (int i = 0; i < this.locations.length; i++) ...{ Resource location = this.locations[i]; if (logger.isInfoEnabled()) ...{ logger.info("Loading properties file from " + location); } InputStream is = null; try ...{ is = location.getInputStream(); ③ 加载密钥 Key key = DESEncryptUtil.getKey(keyLocation.getInputStream()); ④ 对属性文件进行解密 is = DESEncryptUtil.doDecrypt(key, is); ⑤ 将解密后的属性流装载到props中 if(fileEncoding != null)...{ propertiesPersister.load(props, new InputStreamReader(is,fileEncoding)); }else...{ propertiesPersister.load(props ,is); } } finally ...{ if (is != null) is.close(); } } } } } }
在代码清单 2的③和④处,我们使用了一个DES解密的工具类对加密的属性文件流进行解密。观看地址: http://www.qqread.com/java/2008/02/e396819.html
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
相关专题
- 加密与解密技术 (1159篇文章)
- 常用软件加密宝典 (7897篇文章)
- Spring开源框架技术 (672篇文章)
- 文件加密 (134篇文章)
- Spring开发技术篇 (295篇文章)
- J2SE综合:浅谈java程序发布之 jre 篇 (11次浏览)
- JAVA代码中使用魔法数值 (8次浏览)
- Hibernate缓存管理 (6次浏览)
- JAVA代码应该流畅和结构化 (5次浏览)
- Java JVM设置对性能的影响 (4次浏览)
- 开发框架:深入了解 Struts Validator (3次浏览)
- Java中的通信机制及与C/C API的集成 (1次浏览)
- 用Hibernate实现领域对象的自定义字段 (1次浏览)
- Java语言入门 简述Java语言回收机制 (0次浏览)
- 2008年Java开发者最迫切的五个期望 (0次浏览)



