spring配置文件加密详解编程语言

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>

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/7987.html

(0)
上一篇 2021年7月18日
下一篇 2021年7月18日

相关推荐

发表回复

登录后才能评论