计算机系统应用教程网站

网站首页 > 技术文章 正文

若依开发框架解析笔记(3)-数据源配置文件加密

btikc 2024-09-24 08:03:16 技术文章 17 ℃ 0 评论

本篇笔记主要介绍一下若依这个项目的数据源相关的内容。这个框架并没有使用springboot默认使用的数据库连接池,而是使用了druid作为整个项目的数据库连接池。druid主要的配置文件在ruyi-admin这个工程的resource目录下面的application-druid.yml这个文件中。

# 数据源配置
spring:
    datasource:
        type: com.alibaba.druid.pool.DruidDataSource
        driverClassName: com.mysql.cj.jdbc.Driver
        druid:
            # 主库数据源
            master:
                url: jdbc:mysql://localhost:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
                username: root
                password: password

druid相关的配置文件内容有很多,首先介绍一下有关主数据源相关的配置。首先指出一个这个开源项目在这里的一个缺点,并没有对数据库的密码在配置文件中做加密处理,这个肯定在企业相关的开发中是不符合规范的。这里参考github上面druid的官方文档,通过使用ConfigFilter来对配置数据库密码进行加密。主要的步骤如下:

java -cp druid-1.2.8.jar com.alibaba.druid.filter.config.ConfigTools you_password

结果会得到私钥,公钥和加密过后的密码。

privateKey:MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAhRYWFBggLjYobPzopNIizScs/51SF8SDHEEirXQN0P5C+sYiM7bcOy1ZBc1if4w9s+lpk5QbBHggO4SlM7esaQIDAQABAkBcxdGsPkkojZ5Oo1q1krqp0lZe9dcFNHrFFm7LBSygc6YzcY60LGUfIHMz6CRiBlDIDun1Z2NNOKW5n14Qn4HRAiEA6BpkPY1Vp4cPMfpztMBH394TLbw+F0FqdaSFYmn1j30CIQCSyeE2JPm3lW3oFJVFcOQumE43vM/wctO7LMlBV6p8XQIgAlDxGyQj7K4OWsNTEESy8ur2aghs3jKK622e3yKLjskCIG4MFeDO1bxRtgUxMTvPR/K60qEs18QPgjcoe3WWcMUtAiEAtkb8dXdJ38hzdjXIp8DOUa1I0iJoeKFOUeUpbDIKAPQ=
publicKey:MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAIUWFhQYIC42KGz86KTSIs0nLP+dUhfEgxxBIq10DdD+QvrGIjO23DstWQXNYn+MPbPpaZOUGwR4IDuEpTO3rGkCAwEAAQ==
password:XqtQJn9V7mTtlu4DF+epMr3wAAcg/SMMHQUfZpVl90irKM00iOvKlbQLAKzGBcTy5CWK4o1Z76Wdg7LChYb6zw==

后续还要在application-druid.yml加上一些配置主要的是开启config的过滤

  filter:
                config:
                    enabled: true   

还有加上connectionProperties相关的配置和把密码替换成加密之后的密码和配置公钥

     druid:
            # 主库数据源
            master:
                url: jdbc:mysql://192.168.31.166:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
                username: root
                password: 加密过的密码
                connectionProperties: config.decrypt=true;config.decrypt.key=公钥

本文对这个数据源的配置文件做了一些改进,用了druid自带的工具对数据库配置文件进行了加密,使得整个项目更加符合规范。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表