为什么加解密?
主要是防止别人偷看和篡改。
实现方式?
1. 使用filter来监听文件,统一处理配置文件(最好、麻烦)
2. 在spring读取时和使用工具第一次读取配置文件时来加密文件,以后每次读取解密。(简单、只好加密,不好解密修改)
3.使用mvn的替换工具将配置文件中的变量在编译时被替换。(无脑的使用maven插件,配置文件还是没有加密)
4.将一些密码之类的东西加密,比较麻烦。
第二种方式的实现
1. 在spring使用的时候读取加密整个配置文件。 2. 加密后在行首插入特殊字符,标识文件被加密。 3. 在spring使用的时候解密配置文件,然后每次解密即可。 复写spring的配置文件读取类来实现: public class EncryptPropertyPlaceHolderConfigurer extends PropertyPlaceholderConfigurer {
/** 文件加密字符串. */ private static final String ENCRYPT_STRING ="afobhaobfoasbfoasbfoabfbfflasbf";
/** 标记文件加密的首行内容. */ private static final String CHECK_STRING ="#**#";
private Resource[]locations;
private StringfileEncoding;
private PropertiesPersisterpropertiesPersister = new DefaultPropertiesPersister();
public static final String LINE_SEPARATOR; static { StringWriter buf = new StringWriter(4); PrintWriter out = new PrintWriter(buf); out.println(); // 获取该系统的换行符 LINE_SEPARATOR =buf.toString(); out.close(); }
private void encryptResource(Resource resource){ InputStream in = null; StringBuilder builder = new StringBuilder(); try { in = resource.ge |