若依框架数据库密码加密
1. 用 Druid 提供的方法加密密码,控制台会输出三对值,分别是:privateKey、publicKey、password
public static void main(String[] args) {String password = "password";try {ConfigTools.main(new String[]{password});} catch (Exception e) {e.printStackTrace();}
}
2. 将 application-druid.yml 中的 druid.master.password 替换成加密后的 password
3. application-druid.yml 的 druid 直接子级添加配置项,config.decrypt.key 填写生成的 publicKey
filters:config:# 数据库密码是否加密开关,false 表示密码使用明文enabled: true
connect-properties:config.decrypt: trueconfig.decrypt.key:
4. 修改 com.ruoyi.framework.config.properties.DruidProperties,添加以下代码
@Value("${spring.datasource.druid.filters.config.enabled}")
private boolean configFilterEnabled;@Value("${spring.datasource.druid.connect-properties.config.decrypt}")
private String decryptEnabled;@Value("${spring.datasource.druid.connect-properties.config.decrypt.key}")
private String decryptKey;// dataSource 方法中添加
if (configFilterEnabled) {try {/* 启用数据库密码解密 */datasource.setFilters("config");Properties properties = new Properties();properties.put("config.decrypt", decryptEnabled);properties.put("config.decrypt.key", decryptKey);datasource.setConnectProperties(properties);} catch (Exception exception) {exception.printStackTrace();}
}
以下是 DruidProperties 的完整代码
package com.ruoyi.framework.config.properties;import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import com.alibaba.druid.pool.DruidDataSource;import java.util.Properties;/*** druid 配置属性* * @author ruoyi*/
@Configuration
public class DruidProperties
{@Value("${spring.datasource.druid.initialSize}")private int initialSize;@Value("${spring.datasource.druid.minIdle}")private int minIdle;@Value("${spring.datasource.druid.maxActive}")private int maxActive;@Value("${spring.datasource.druid.maxWait}")private int maxWait;@Value("${spring.datasource.druid.timeBetweenEvictionRunsMillis}")private int timeBetweenEvictionRunsMillis;@Value("${spring.datasource.druid.minEvictableIdleTimeMillis}")private int minEvictableIdleTimeMillis;@Value("${spring.datasource.druid.maxEvictableIdleTimeMillis}")private int maxEvictableIdleTimeMillis;@Value("${spring.datasource.druid.validationQuery}")private String validationQuery;@Value("${spring.datasource.druid.testWhileIdle}")private boolean testWhileIdle;@Value("${spring.datasource.druid.testOnBorrow}")private boolean testOnBorrow;@Value("${spring.datasource.druid.testOnReturn}")private boolean testOnReturn;@Value("${spring.datasource.druid.filters.config.enabled}")private boolean configFilterEnabled;@Value("${spring.datasource.druid.connect-properties.config.decrypt}")private String decryptEnabled;@Value("${spring.datasource.druid.connect-properties.config.decrypt.key}")private String decryptKey;public DruidDataSource dataSource(DruidDataSource datasource){/** 配置初始化大小、最小、最大 */datasource.setInitialSize(initialSize);datasource.setMaxActive(maxActive);datasource.setMinIdle(minIdle);/** 配置获取连接等待超时的时间 */datasource.setMaxWait(maxWait);/** 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 */datasource.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis);/** 配置一个连接在池中最小、最大生存的时间,单位是毫秒 */datasource.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis);datasource.setMaxEvictableIdleTimeMillis(maxEvictableIdleTimeMillis);/*** 用来检测连接是否有效的sql,要求是一个查询语句,常用select 'x'。如果validationQuery为null,testOnBorrow、testOnReturn、testWhileIdle都不会起作用。*/datasource.setValidationQuery(validationQuery);/** 建议配置为true,不影响性能,并且保证安全性。申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。 */datasource.setTestWhileIdle(testWhileIdle);/** 申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。 */datasource.setTestOnBorrow(testOnBorrow);/** 归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。 */datasource.setTestOnReturn(testOnReturn);if (configFilterEnabled) {try {/* 启用数据库密码解密 */datasource.setFilters("config");Properties properties = new Properties();properties.put("config.decrypt", decryptEnabled);properties.put("config.decrypt.key", decryptKey);datasource.setConnectProperties(properties);} catch (Exception exception) {exception.printStackTrace();}}return datasource;}
}
若依框架数据库密码加密相关推荐
- springboot+druid+dynamic-datasource+mysql数据库密码加密
背景 生产环境中, 希望将数据库密码加密, 甚至用户名加密.druid自带了数据库密码加密功能. springboot+druid-starter实现密码加密 获取公钥和加密密码.这里使用druid- ...
- java配置文件中数据库密码加密
最近,有位读者私信我说,他们公司的项目中配置的数据库密码没有加密,编译打包后的项目被人反编译了,从项目中成功获取到数据库的账号和密码,进一步登录数据库获取了相关的数据,并对数据库进行了破坏. 虽然这次 ...
- SSM项目的数据库密码加密方案
项目主要采用:SpringMVC4.3.2.RELEASE +Spring4.3.2.RELEASE + Maven 3.3.3 + druid 1.0.29 + Mybatis 3.2.8 + My ...
- druid ssh加密 java mysql_springboot 整合druid数据库密码加密功能的实现代码
在之前给大家介绍过Springboot Druid 自定义加密数据库密码的几种方案,感兴趣的朋友可以点击查看下,今天通过本文给大家介绍springboot 整合druid数据库密码加密功能,具体内容如 ...
- druid连接池配置数据库密码加密
druid配置数据库密码加密后,可以把密码放在配置文件里,或本地其他文件.远程服务器等三种地方,这里只讲第一种方法. 1.密码加密:cd到druid包所在文件夹打开命令行,输入 java -cp dr ...
- SpringBoot配置文件敏感信息加密,springboot配置文件数据库密码加密jasypt
使用过SpringBoot配置文件的朋友都知道,资源文件中的内容通常情况下是明文显示,安全性就比较低一些.打开application.properties或application.yml,比如mysq ...
- 使用durid的ConfigFilter对数据库密码加密
原文连接:http://blog.csdn.net/aixiaoyang168/article/details/49930513 ----------------------------------- ...
- mysql数据库druid密码加密_Druid数据库密码加密
背景 数据库密码直接写在配置中,对安全来说,是一个很大的挑战.Druid为此提供一种数据库密码加密的手段ConfigFilter. druid版本为1.1.18. 加密 1.项目中引入依赖 com.a ...
- TOMCAT 连接池数据库密码加密方法
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 原文来自 ...
- 集成druid实现数据库密码加密功能
数据库密码直接写在配置中,对运维安全来说,是一个很大的挑战.可以使用Druid为此提供一种数据库密码加密的手段ConfigFilter. 目录 1.执行命令加密数据库密码 2.配置数据源,提示Drui ...
最新文章
- elementui 隐藏输入框_elementui select下拉框输入完全匹配值则下拉隐藏
- vim 设置标签等操作
- JavaScript中子类调用父类方法的实现
- Linux 市场估值将超 70 亿美元,主要原因是安全与开源需求
- UVA11005 Cheapest Base【数学】
- KnockoutJS 3.X API 第四章 表单绑定(11) options绑定
- Ubuntu18.04 32位下载
- 华为云devops认证考试课堂笔记4
- 独家首发强大的个性生成工具箱微信小程序源码,超多功能的合成
- 推荐一个项目管理工具:TAPD
- github搭建php,在github规范开发以及持续构建php项目
- flink 部署模式和运行时架构(会话模式、单作业模式、应用模式,JobManager、TaskManager,YARN 模式部署以及运行时架构)
- BetterScroll 2.0网络数据过慢,不能滚动问题
- Spring Boot2 系列教程(三十三)整合 Spring Security
- ENE轨道线的选股公式
- 头歌 共享单车大数据项目数据分析
- Spring Boot DAY03 配置文件的注入
- IBinder中linkToDeath的介绍
- ARM linux 的原子操作分析
- JVM之类的加载过程(三):初始化——>Initialization