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

    中的值。

     

     

  • 相关阅读:
    CSS宽高背景介绍
    js控制iframe高度自动撑开
    点击除指定元素以外的任意地方隐藏js
    es6中对象转数组,转map
    JavaScript常用方法(工具类的封装)
    h5端提示下载app
    web端调百度地图页面
    前端分享功能
    手机注册发送验证码倒计时
    判断滚动条滑到底部触发事件
  • 原文地址:https://www.cnblogs.com/yanliang12138/p/9705878.html
Copyright © 2011-2022 走看看