工信部的网站备案,织梦的官方网站,千图网免费素材图库背景,seo检测文章目录 实现原理EncDataSourceInitEvent 类与 DataSourceInitEvent 接口配置 DataSourceInitEvent 为 Bean使用案例第 1 步:使用私钥加密第 2 步:在 YAML 中使用 ENC(xxx) 配置相关文章🗯️ 上节回顾:前节中,了解了 dynamic-datasource 的懒加载/初始化 SQL/无数据源启… 文章目录 实现原理EncDataSourceInitEvent 类与 DataSourceInitEvent 接口配置 DataSourceInitEvent 为 Bean 使用案例第 1 步:使用私钥加密第 2 步:在 YAML 中使用 ENC(xxx) 配置 相关文章 🗯️ 上节回顾:前节中,了解了 dynamic-datasource 的懒加载/初始化 SQL/无数据源启动。 👉 本节目标:了解 dynamic-datasource 的进阶用法 - 数据库加密。 数据库加密:指数据库的 url, username, password 需要加密。常用于安全性较高系统,不让普通开发通过配置知道生产库的连接配置。
实现原理
有些项目中,对数据库连接的关键字段有加密需求。比如常见的 Druid 就有此加密功能。 dynamic-datasource 复制了 Druid 的加密功能。简单来说,就是私钥加密,公钥解密。私钥自己拿着,公钥发布出去,公钥配置在程序中,用于解密。 使用步骤:
1️⃣ dynamic-datasource 使用 CryptoUtils 实现 RSA 加解密2️⃣ 然后在配置文件中使用 ENC(xxx) 替换掉明文(xxx 是密文)3️⃣ 最后在创建 DataSource 前使用 EncDataSourceInitEvent 类调用 CryptoUtils.decrypt(publicKey, 密文)解密EncDataSourceInitEvent 类与 DataSourceInitEvent 接口
EncDataSourceInitEvent类 是 DataSourceInitEvent接口的实现类。
package com.baomidou.dynamic.datasource.event;
import com.baomidou.dynamic.datasource.creator.DataSourceProperty;
import javax.sql.DataSource;/*** 多数据源连接池创建事件*/
public interface DataSourceInitEvent {/*** 连接池创建前执行(可用于参数解密)** @param dataSourceProperty 数据源基础信息*/void beforeCreate(DataSourceProperty dat