java web 项目配置文件属性加密

1.未加密

config.properties配置

mail.host=192.168.0.100
mail.username=email_username
mail.password=email_password
mail.smtp.auth=true
mail.smtp.timeout=15000
mail.smtp.port=25

spring-context.xml



    
        
            classpath*:config.properties
        
    

2.已加密

config.properties配置

mail.host=192.168.0.100
mail.username=kpMmZE2dWLPujCGcj6ng6w==
mail.password=LPLELj4DeR/Z2CsM9GQY+A==
mail.smtp.auth=true
mail.smtp.timeout=15000
mail.smtp.port=25

AesPropertyPlaceholderConfigurer

package com.benz.utils;

import java.util.Properties;

import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer;

public class AesPropertyPlaceholderConfigurer extends PropertyPlaceholderConfigurer {

    @Override
    protected void processProperties(ConfigurableListableBeanFactory beanFactoryToProcess, Properties props)
            throws BeansException {
        try {
            // 邮箱账号
            String mailUsername = props.getProperty("mail.username");
            // 邮箱密码
            String mailPassword = props.getProperty("mail.password");
            
            // 校验数据
            if (ObjectUtils.isNotEmpty(mailUsername) && ObjectUtils.isNotEmpty(mailPassword)) {
                // 解密属性值,并重新设置
                props.setProperty("mail.username", AESUtils.aesDecrypt(mailUsername));
                props.setProperty("mail.password", AESUtils.aesDecrypt(mailPassword));
            }
            super.processProperties(beanFactoryToProcess, props);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    
}

spring-context.xml





    
        
            classpath*:config.properties
            classpath*:jdbc.properties
        
    

 

 

 

 

你可能感兴趣的:(Java,Web)