• 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

    中的值。

     

     

  • 相关阅读:
    Javascript注销Window认证登录信息
    Asp.Net文件下载
    Python Beginner's Guide
    StructureMap
    Telerik RadGanttView示例
    SharePoint Server 2010 备份还原和部署
    Bootstrap
    Javascript面向对象基础
    .NET Regular Expressions
    Javascript Arguments Callee Caller
  • 原文地址:https://www.cnblogs.com/yanliang12138/p/9705878.html
Copyright © 2020-2023  润新知