zoukankan      html  css  js  c++  java
  • 解密Spring加载的Properties文件

      Spring的框架中,org.springframework.beans.factory.config.PropertyPlaceholderConfigurer类可以将.properties(key/value形式)文件中 
    一些动态设定的值(value),在XML中替换为占位该键($key$)的值, 
    .properties文件可以根据客户需求,自定义一些相关的参数,这样的设计可提供程序的灵活性。

    xml中的配置文件

    <bean id="propertyConfigurer" 
    class="com.datasure.util.filter.EncryptablePropertyPlaceholderConfigurer"> 
    <property name="locations"> 
    <list><value>classpath:jdbc.properties</value></list> 
    </property> 
    </bean>
    public class EncryptablePropertyPlaceholderConfigurer extends PropertyPlaceholderConfigurer {
        private static final String key = "helloworld";
    
        protected void processProperties(ConfigurableListableBeanFactory beanFactory, Properties props)
            throws BeansException {
                try {
                    Des des = new Des();
                    String username = props.getProperty("jdbc.username");
                    if (username != null) {
                        props.setProperty("jdbc.username", des.Decrypt(username, des.hex2byte(key)));
                    }
                    
                    String password = props.getProperty("jdbc.password");
                    if (password != null) {
                        props.setProperty("jdbc.password", des.Decrypt(password, des.hex2byte(key)));
                    }
                    
                    String url = props.getProperty("jdbc.url");
                    if (url != null) {
                        props.setProperty("jdbc.url", des.Decrypt(url, des.hex2byte(key)));
                    }
                    
                    String driverClassName = props.getProperty("jdbc.driverClassName");
                    if(driverClassName != null){
                        props.setProperty("jdbc.driverClassName", des.Decrypt(driverClassName, des.hex2byte(key)));
                    }
                    
                    super.processProperties(beanFactory, props);
                } catch (Exception e) {
                    e.printStackTrace();
                    throw new BeanInitializationException(e.getMessage());
                }
            }
        }

    通过如上配置就可以对配置文件进行解密操作

  • 相关阅读:
    git/github
    window 下安装MySQL
    webservice学习笔记
    Selenium 扩展功能
    Selenium API
    Selenium IDE
    Python简单爬虫
    XPath学习笔记
    selenium学习笔记(一)
    python学习笔记(网络编程)
  • 原文地址:https://www.cnblogs.com/shinubi/p/5302878.html
Copyright © 2011-2022 走看看