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

    目标:要加密spring的jdbc配置文件的密码口令。
     
    实现思路:重写加载器的方法,做到偷梁换柱,在真正使用配置之前完成解密。

    1.扩展

    package com.rail.comm;

    import java.util.Properties;
    import org.springframework.beans.BeansException;
    import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
    import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer;

    /**  
     *   
     * 项目名称:rwoa  
     * 类名称:PropertyPlaceholderConfigurerExt  
     * 类描述:   对数据库用户名密码加密
     * 创建人:赵井桂  
     * 创建时间:2012-5-17 上午10:45:27  
     * 修改人:赵井桂 
     * 修改时间:2012-5-17 上午10:45:27  
     * 修改备注:  
     * @version   
     *   
     */
    public class PropertyPlaceholderConfigurerExt extends PropertyPlaceholderConfigurer{
      @Override
      protected void processProperties(ConfigurableListableBeanFactory beanFactory, Properties props)
                         throws BeansException {
           String username=props.getProperty("datasource.username");
                 String password = props.getProperty("datasource.password");
                
                 //解密jdbc.password属性值,并重新设置
              props.setProperty("datasource.username",Util.decrypt(username));
              props.setProperty("datasource.password",Util.decrypt(password));
                 super.processProperties(beanFactory, props);
         }
    }

    2.Spring配置文件修改

    //无加密

    <!-- <bean id="placeholderConfig" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">-->

    //加密后的
     <bean id="placeholderConfig" class="com.rail.comm.PropertyPlaceholderConfigurerExt">
      <property name="location">
       <value>classpath:init.properties</value>
      </property>
     </bean>

    3.init.properties 文件修改

    datasource.type=mysql
    datasource.driverClassName=com.mysql.jdbc.Driver
    datasource.url=jdbc:mysql://192.168.1.46:3306/rwoadb?useUnicode=true&characterEncoding=utf-8
    datasource.username=2CCEE362A852387BD51C63E4780F2588
    datasource.password=984027EDC2227C8EAF5D9733178C6418

    4.加密算法实现,这里就不在赘述。

  • 相关阅读:
    MacOS Catalina 10.15安装教程,启动U盘制作及安装方法
    苹果macOS Catalina 10.15 正式版推送了,要不要升级,需要注意什么?
    Sublime Text Mac如何进行按键绑定?
    Mac软件应用程序打开出现意外退出、崩溃解决办法
    使用VScode Mac版编译配置C/C++程序完整图文教程
    pycharm pro 2019 mac重构技巧?
    一体化数据库管理Navicat Premium for Mac的命令提示代码
    jsonp理解
    linux系统命令大全
    java学习笔记之分层增删改查
  • 原文地址:https://www.cnblogs.com/huapox/p/3509632.html
Copyright © 2011-2022 走看看