若依框架数据库密码加密

article/2025/6/27 3:02:04

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;}
}

 


http://chatgpt.dhexx.cn/article/io9hwqqm.shtml

相关文章

IDEA若依框架新建模块

创建新的module 项目上鼠标右键 选择Maven项目 Parent选ruoyi 点击Finish 编辑RuoYi-Vue_Wisdom/ruoyi-wisdom/pom.xml 在<artifactId>ruoyi-wisdom</artifactId>下面增加 <dependencies><!-- 通用工具--><dependency><groupId>com…

若依框架登录去除验证码

若依框架自带的登录功能还是挺好用的。但是在开发过程中经过因在编写代码或者编写设计文档登录会话到期重新登录。重新登录就会出现验证码&#xff0c;一天如果要输入10次验证码也会浪费不少时间。 验证码这个功能在生产环境非常有必要&#xff0c;但是在开发模式完全没有价值…

若依框架解析

1.框架介绍 RuoYi是一个基于Java技术开发的后台管理系统&#xff0c;基于技术组合&#xff08;SpringBootVue&#xff09;,内置模块有&#xff1a;部门管理、角色用户、菜单即按钮授权、数据权限、系统参数、日志管理、代码生成、表单构建等。支持多数据源、支持分布式事务。 …

若依框架项目

若依框架介绍 ruoyi是一个基于Java技术开发的后台管理系统。 包括有前后端分离版、微服务版、App版。内置模块有&#xff1a;部门管理、角色用户、菜单即按钮授权、数据权限、系统参数、日志管理、代码生成、表单构建等。支持多数据源、支持分布式事务。 若依前后端分离项目搭…

若依框架的使用

目录 1.为什么使用若依框架 2.环境搭建 2.1下载代码 2.2 系统配置 1.为什么使用若依框架 若依是一个快速开发框架&#xff0c;基于springboot&#xff0c;集成了mybatis&#xff0c;spring security&#xff0c;redis等常用的框架&#xff0c;支持多语言&#xff0c;已经实…

若依框架RuoYi前后端分离项目导入IDEA及运行启动

首先需要在码云上下载RuoYi-vue解压到你的工作目录&#xff08;https://gitee.com/y_project/RuoYi-Vue&#xff09; 然后去nodejs官网下载nodejs 除了选择你的安装目录一直next&#xff08;查看环境变量是否配置成功&#xff09; 安装完成后&#xff0c;cmd中输入&#xff1a;…

ruoyi(若依)框架使用说明(前后端分离)

TOC 框架介绍 本身是一个优秀的简单的后台管理系统框架,前端(Vue,ElementUI),后端(Spring Boot、Spring Security、Redis & Jwt),本身可以直接拉下来直接使用.它的强大之处在于代码自动生成器的使用,可以根据数据库的表对应生成全套前后端代码,代码植入后可以直接使用,复…

使用若依框架RuoYi前后端分离版(超详细步骤)

下一客:若依框架代码生成工具–单表增删改查(超详细步骤) 一、若依框架RuoYi项目运行启动教程(详细步骤) 1.1 官网下载代码 第一步:简介 RuoYi-Vue是一款基于SpringBootVue的前后端分离极速后台开发框架。 官网链接 在线文档 第二步:下载源码 1.点击复制,将链接复制到IDEA中…

若依开源框架解析

1、框架介绍 RuoYi是一个基于Java技术开发的后台管理系统&#xff0c;目前官方同步在维护的有3个版本。 开源协议&#xff1a;MIT 解释&#xff1a;MIT是和BSD一样宽松的许可协议,作者只想保留版权,而无任何其他了限制.也就是说,你必须在你的发行版里包含原许可协议的声明,无论…

若依框架的入门介绍及使用

若依框架的入门介绍及使用 文章目录 引言1.什么是若依2 .使用若依2.1系统需求2.1下载并运行2.2配置数据库 MySQL、Reids2.2.1MySQL配置2.2.2Redis配置 2.3前端启动 3. 框架结构和模块3.1后端结构3.2前端结构3.3内置功能3.4其他功能和扩展3.4.1代码生成器 总结 引言 若依&#…

从零入门开源框架---若依(前后端分离版)

一、若依是什么&#xff1f; 若依它就是一个开源项目&#xff0c;别人写好的代码&#xff0c;我们拿来进行二次开发,它主要是做数据和权限管理系统。 二、使用背景 任何公司的各种大的项目必然需要一个后台权限管理系统&#xff0c;这是必然的&#xff0c;但是如果不想投入太多…

若依框架学习笔记

若依框架简介 若依框架简介若依框架版本介绍若依框架&#xff08;vue前后端分离版本&#xff09;首页系统管理用户管理角色管理菜单管理 系统监控系统工具表单构建 代码生成 若依框架简介 根据官网介绍若依框架就是一个后台管理框架&#xff0c;主要使用技术在官网上也有介绍我…

若依框架入门(前后端分离版本)

目录 一 若依下载以及配置启动 1.下载地址 2.数据库引入及配置 3.前端vue启动 4.登录及验证 二.关于若依框架的基本使用方法 1.自动生成 2.菜单的配置 3.数据字典 4.关于api接口 5.关于定时任务 6.关于分页 一 若依下载以及配置启动 1.下载地址 学习基础:Spring…

若依框架详细使用

目录 &#x1f3f3;‍&#x1f308;若依是用来干什么的❓ &#x1f6a9;技术支持&#xff1a; &#x1f3f3;‍&#x1f308;如何下载❓ &#x1f6a9;官网地址: &#x1f3f3;‍&#x1f308;如何搭建ruoyi环境❓ &#x1f6a9;若依框架的目录结构 &#x1f6a9; 修改配…

js元素距离和鼠标位置整理

距离 offsetTop / offsetLeft ( 元素与父级 定位元素/table/td/th/body 的距离 ) clientTop / clientLeft ( 元素边框宽度 ) scrollTop / scrollLeft ( 元素滚动距离 ) window.scrollY / window.scrollX ( 文档/页面 滚动距离 ) window.pageYOffset / window.pageXOffset ( 另…

原生js实现跑马灯效果,鼠标放下可以停止跑动

js原生代码跑马灯效果纯js代码如下&#xff1a; 1.首先html的内容&#xff08;里面图片自己可以换&#xff0c;li里面也可以填文字&#xff09; <div> <ul><li>呵呵呵呵呵3</li> <li>叽叽叽叽叽4</li> <li…

unity拖拽UI生成Cube并跟随鼠标移动,放置点可放下

代码&#xff1a; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Events; using UnityEngine.EventSystems; using UnityEngine.UI;public class DragCreate : MonoBehaviour {public GameObject Cube;public GameObje…

JavaScript的拖拽事件。

在浏览器可以随意的拖拽&#xff0c;我们来看下怎么实现&#xff1f; 我们具体分析一下步骤&#xff1a; 第一步&#xff1a;鼠标选中需要拖拽的地方&#xff0c;鼠标按下。&#xff08;需要使用事件onmousedown&#xff09; 第二步&#xff1a;鼠标按下后&#xff0c;我们接着…

html修改鼠标手势,css要怎么设置鼠标手势?

在CSS中&#xff0c;可以使用cursor属性来设置鼠标手势。下面本篇文章就来给大家介绍一下cursor属性。有一定的参考价值&#xff0c;有需要的朋友可以参考一下&#xff0c;希望对大家有所帮助。 cursor属性定义了鼠标指针放在一个元素边界范围内时所用的光标形状。有时我们需要…

java 鼠标响应_java小程序中鼠标事件的响应处理

如何在小程序中实现鼠标响应&#xff1f; public class Hello extends Applet implements MouseListener{ public void init(){ addMouseListener(this); } public void mouseEntered(MouseEvent e){ au.play(); setBackground(Color.blue); } public void mouseExited(MouseEv…