【SpringBoot】数据源加密处理
代码审计报告提出的一个问题:
明文暴露配置信息风险
解决方案可以使用jasypt实现
需要使用依赖:
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>2.1.0</version>
</dependency>
加密实现案例:
import com.yonyou.cloud.repair.RepairApplication;
import org.jasypt.encryption.StringEncryptor;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class)
@SpringBootTest(classes = RepairApplication.class )
public class DatabaseTest { @Autowired
private StringEncryptor encryptor; @Test
public void Test() {
String url = encryptor.encrypt("10.180.6.116");
String name = encryptor.encrypt("6379");
String password = encryptor.encrypt("cyx_Pass1234");
System.out.println("database url: " + url);
System.out.println("database name: " + name);
System.out.println("database password: " + password);
Assert.assertTrue(url.length() > 0);
Assert.assertTrue(name.length() > 0);
Assert.assertTrue(password.length() > 0);
}
}
结合application.yml配置信息的处理:
加密的密文需要加上ENC()修饰,在加载过程处理解密
# 现UAT环境库
url: ENC(3HhbZfqGCMCr+ux/0hUbmMGtnP1v03lj/nSIYpS1mwDN745DC2V/rM3IXeWKRTq0Z67V3l67tpuzaj+IoCAQkjms2HW2Df7bPAFBFC6Q8ixaucMo2JHoMz16jxvCHrlz7CUAwTH/oZpzoqzEbfJgu3bixM5DoaOmQGSeWk67hZVSYoKjx77Oif08fecAid/nobzBSvuzYhcMIylWkWyONg==)
username: ENC(Q+bk/oOkE92lcvFJXXzk6RMV1homL+Ij)
password: ENC(fzPoG+f1QEM1AfRGqAVCTpJ9bzYNbSAj0jpAX6DNqTk=)
密文加密的盐值配置【yml配置层级就是第一级】:
jasypt:
encryptor:
password: Y6M8fAJQdU7jNp5MW
【SpringBoot】数据源加密处理的更多相关文章
- SpringBoot之加密
最近利用闲暇时间写了一个博客系统,主要参考wordpress,主要目的是为了提高自己的技术能力.写代码写了两年多,联系到之前在学校的时候写过的一个博客系统,发现工作中开发的系统,技术上基本一致,业务逻 ...
- SrpingDruid数据源加密数据库密码
前言 在工作中遇到这样一个问题:开发过程中将数据库的账号.密码等信息配置在了一个单独的properties配置文件中(使用明文).但运维人员要求在配置文件中的密码一律不得出现明文. 环境 Spring ...
- allator 对springBoot进行加密
1.对springboot项目添加jar包和xml文件 allatori.xml: <config> <input> <jar in="target/sprin ...
- SpringBoot数据源相关配置
数据源配置 单数据源 配置步骤 引入依赖:H2数据库驱动.JDBC依赖.acturator(运维).web模块(用于测试).lambok(使用@Slf4j打印日志). 直接配置所需的Bean,注入容器 ...
- 使用Jasypt对SpringBoot配置文件加密(转)
文章转自 https://www.jianshu.com/p/323ec96c46d2 引入jasypt <dependency> <groupId>com.github. ...
- SpringBoot中加密com.github.ulisesbocchio
Jasypt Spring Boot 为 Spring Boot 项目中的属性源(property sources)提供加密支持. 有三种方法可以在项目中集成 jasypt-spring-boot: ...
- Springboot 如何加密,以及利用Swagger2构建Restful API
先看一下使用Swagger2构建Restful API效果图 超级简单的,只需要在pom 中引用如下jar包 <dependency> <groupId>io.springfo ...
- 折腾了我两天的springboot数据源datasource循环依赖问题,都被搞疯掉了
在做项目重构的时候增加了两个功能 1.多数据源. 2.token的验证从以前的数据库验证,移到了redis端. 1.多数据源使用 druid-spring-boot-starter 套件 其核心代码如 ...
- 使用Jasypt对SpringBoot配置文件加密
# **前言** 在日前安全形势越来越严重的情况下,让我意识到在项目中存在一个我们经常忽略的漏洞,那就是我们的项目的配置文件中配置信息的安全,尤其是数据库连接的用户名和密码的安全.所以这里我们就需要对 ...
- 【Druid】-Druid数据源加密数据库密码配置
1.数据库配置文件添加配置 <property name="filter" value="config"> <property name=&q ...
随机推荐
- OpenStack 认证服务(keystone)安装前期部署检查
一,检查安装完成情况 1.连接情况 (1) 从控制节点到计算节点的连通性测试 [1]ping计算节点的内网ip [2]ping计算节点的外网ip [3]ping计算节点的主机名 (2)从计算节点到控制 ...
- Redux之combineReducers方法
Redux 提供了一个combineReducers方法,用于 Reducer 的拆分.你只要定义各个子 Reducer 函数,然后用这个方法,将它们合成一个大的 Reducer. import { ...
- kettle从入门到精通 第十七课 kettle Transformation executor
Transformation executor步骤是一个流程控件,和映射控件类似却又不一样. 1.子转换需要配合使用从结果获取记录和复制记录到结果两个步骤,而子映射需要配合映射输入规范和映射输出规范使 ...
- C# .NET Framework EXCEL NPOI EOF in header
实例化时异常: EOF in header 错误代码: try { workBook = new HSSFWorkbook(file); } catch { try { workBook = new ...
- django通过celery定时任务
settings.py # Broker配置,使用Redis作为消息中间件 BROKER_URL = 'redis://127.0.0.1:6379/0' # BACKEND配置,这里使用redi ...
- The bean ‘xxx‘ could not be injected as a ‘xxx‘because it is a JDK dynamic proxy that implements错误解决
1.解决方法:使用@Autowired 2.@autowired和@resource注解的区别区别:1.@Autowired注解由Spring提供,只按照byType注入:@resource注解由J2 ...
- 用 Python 绘制现金流量图
目录 用 Python 绘制现金流量图 Python 实现 实现原理 具体代码 使用示例 1:根据现金流量表绘制现金流量图 使用示例 2:绘制等额.等差.等比序列现金流量图 等额序列现金流量图 等差序 ...
- 微信小程序自动化分析_包含执行设备及对应的微信版本
背景介绍: 微信小程序是基于腾讯自研 X5 内核,不是谷歌原生 webview. 实现方式: 1.小程序自动化sdk,使用自动化sdk,需要有小程序的开发者权限,以及参考的资料较少,2.选择采用app ...
- Spring之webMvc异常处理
异常处理可以前端处理,也可以后端处理. 从稳妥的角度出发,两边都应该进行处理. 本文专门阐述如何在服务端进行http请求异常处理. 一.常见的异常类型 当我们做http请求的时候,会有各种各样的可能错 ...
- P6626 题解
有一个很暴力的解法,就是以询问点为根 DFS. 考虑优化,我们考虑优化换根. 当根节点从父亲移动到它的某个孩子时,孩子的子树内所有点深度减 \(1\) 其余点深度加 \(1\). 同理,当根节点从某个 ...