zoukankan      html  css  js  c++  java
  • spring配置文件加密

    原文: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>

  • 相关阅读:
    python调用php函数
    api响应类
    php 利用socket发送GET,POST请求
    php的异常和处理
    predis操作大全
    PHP 实现HASH表
    PHP 实现Session入库/存入redis
    PHP下使用Redis消息队列发布微博
    jquery 仿163网易图片新闻幻灯片展示
    6种非常酷炫的jquery banner焦点图片幻灯片切换
  • 原文地址:https://www.cnblogs.com/shihaiming/p/7048303.html
Copyright © 2011-2022 走看看