zoukankan      html  css  js  c++  java
  • mybatis连接mysql加密实现

    参考文章1

    参考文章2

          直接重写BasicDataSource接口的setPassword方法;

    这里同样存在一个问题,就是在重写的方法中,我们可以对password,username

    进行解密处理,但是不能根据database.properties中的字段jdbc.isencoder值来判断

    是否需要解密。

    参考文章3

           采用EncryptPropertyPlaceholderConfigurer extends PropertyPlaceholderConfigurer的方式

    具体入参考文章3,在扩展的类中进行解密操作,然后其他的操作与mybatis连接mysql中相同

    但是在实现的过程中发现一个问题:就是在.properties文件中设置一个字段jdbc.isencoder = 0

    但是不知道怎么去使用这个字段????

    所以在加载这个配置文件的时候,不知道如何去判断是否该解密,只能判断哪些字段该解密(用户名,密码)

           文章3中采用的重写PropertyPlaceholderConfigurer类中的convertProperty函数,而在这这个函数传入的

    值时属性名和值,通过属性和我们需要解密的属性名对比,若是则调用解密函数进行解密。这里的局限性就是

    我们无法在最开始文件中去配置是否需要加解密。所以后面我又网上找到了一个类似的其它的实现方式如下:

    spring在加载.propertoes配置文件时进行加密解密:参考文章4

           在参考文章4中,通过重写PropertyPlaceholderConfigurer父类的processProperties函数

    可以对读取的所有字段进行处理,这样就解决了文章3中的问题,可以根据配置来决定是否采用

    加密的方式。

          在实现文章4中,发现还是需要在函数最后加上super.processProperties(beanFactoryToProcess, props);

    不然在获取到.properties文件后,在注入数据连接池时,不能通过类似于${}的方式来获取前面读取的.properties

    中的值。

     

     

  • 相关阅读:
    今天在这里开博客,分享心情与技术
    tp3.2控制器返回时关闭子窗口刷新父页面
    关于iframe与$.load()哪个更好
    javascript的匿名函数的理解(转载学习)
    DOM入门学习笔记
    SQL学习基础笔记
    多线程和套接字入门学习笔记
    网络套接字学习以及聊天程序开发实例
    DOM 讲解结束
    JQuery 基础学习
  • 原文地址:https://www.cnblogs.com/yanliang12138/p/9705878.html
Copyright © 2011-2022 走看看