杂项-SpringBoot-Jasypt:Jasypt(安全框架)
| ylbtech-杂项-SpringBoot-Jasypt:Jasypt(安全框架) |
| 1. 使用jasypt加密Spring Boot应用中的敏感配置返回顶部 |
本文讲述了在Spring Boot/Spring Cloud应用中使用jasypt来加密properties。
jasypt 简介
详细信息直接看github文档即可,这里仅简单罗列一丢丢信息。
Jasypt为Spring Boot应用提供property sources的加密支持,可以加密的数据有:
- system property
- environment property
- command line argument
- application.properties
- yaml properties
- other custom property sources
##哪些是敏感信息?
由于很多应用使用 配置文件 (eg:properties、yml) 来存储配置信息,配置中经常会涉及到许多敏感信息。
举几个小例子:
- 普通应用密码信息,如:DB、Rabbit、Redis等
- 特殊密码信息,如:Spring Cloud Config需要配置Git等VCS密码信息
- 第三方通讯凭证信息,如:调用第三方接口发送短信的通讯凭证信息
由于各业务场景不同,因此敏感信息的定义也不同。
应用场景案例
这里以自有团队的Spring Cloud Config来举个例子。
- 场景: 使用两个git repository来存储配置信息,一个存储生产环境配置,一个存储非生产环境所有配置。分两个的目的是控制权限,生产环境仅特定人员可见。
- 问题: 由于VCS的账户密码存储在配置文件中,所以分两个git repo存储配置也是自欺欺人,可以直接根据配置文件中的VCS密码下载生产环境的配置信息。
- 解决: 对VCS密码进行加密
加密前的数据:
spring:
cloud:
config:
server:
git:
uri: https://example.domain.com/helloworld.git
username: yourname
password: yourpwd
加密后的数据:
spring:
cloud:
config:
server:
git:
uri: https://example.domain.com/helloworld.git
username: username
password: ENC(DoyyHAMYaEyJBJHW496HiTT4VIazUYZo)
如何使用jasypt
参考 jasypt github文档最好,里面有更多信息,这里仅抛砖引玉,简单列举下使用步骤。
引入jasypt-spring-boot-starter依赖
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>2.0.0</version>
</dependency>
###配置加/解的密码
以配置在 bootstrap.yml 中为例:
jasypt:
encryptor:
password: JH8AS90jasH
默认使用 PBEWithMD5AndDES 加密算法,只有 jasypt.encryptor.password 是必要配置。
加密你的属性
假设需要加密DB密码,密码为123456
创建一个测试类,加密后得到的加密密码为:BsSPrDRNeU/Nb1v/GsHvZA==
@RunWith(SpringRunner.class)
@SpringBootTest
public class BlogApplicationTests { @Autowired
StringEncryptor stringEncryptor; @Test
public void test() {
System.out.println(stringEncryptor.encrypt("123456"));
}
}
配置加密后的属性
将加密后的属性值配置在配置文件中即可,ENC 是约定的关键字,在启动时会解析所有 PropertySource 中的加密属性。
spring.datasource.password=ENC(BsSPrDRNeU/Nb1v/GsHvZA==)
小结
jasypt文档有更详细的介绍,支持多种配置方式甚至定制自己的Encryptor。
| 2.返回顶部 |
| 3.返回顶部 |
| 4.返回顶部 |
| 5.返回顶部 |
| 6.返回顶部 |
![]() |
作者:ylbtech 出处:http://ylbtech.cnblogs.com/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 |
杂项-SpringBoot-Jasypt:Jasypt(安全框架)的更多相关文章
- SpringBoot集成Jasypt安全框架,配置文件内容加密
我们在SpringBoot项目中的yml或者properties配置文件中都是明文的,相对而言安全性就低了很多.都知道配置文件中的都是一些数据库连接用户名密码啊.一些第三方密钥等信息.所以我们谨慎点, ...
- 【Springboot】Springboot整合Jasypt,让配置信息安全最优雅方便的方式
1 简介 在上一篇文章中,介绍了Jasypt及其用法,具体细节可以查看[Java库]如何使用优秀的加密库Jasypt来保护你的敏感信息?.如此利器,用之得当,那将事半功倍.本文将介绍Springboo ...
- Springboot Application 集成 OSGI 框架开发
内容来源:https://www.ibm.com/developerworks/cn/java/j-springboot-application-integrated-osgi-framework-d ...
- 搭建SpringBoot+dubbo+zookeeper+maven框架(二)
上一篇文章是关于搭建SpringBoot+dubbo+zookeeper+maven框架的,但是里面的功能还不够完善,今天就日志管理方面做一些改善. 下了demo的网友可能会发现项目在启动时会有警告: ...
- 搭建SpringBoot+dubbo+zookeeper+maven框架(一)
这几天项目还没来,所以就自己试着参考网上的一些资料,搭建了一个SpringBoot+dubbo+zookeeper+maven框架,网上参考的很多资料照着他们一步一步搭建,最后很多都运行不通,很是郁闷 ...
- 使用Springboot快速搭建SSM框架
Spring Boot设计目的是用来简化Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置. 一.环境准备 Idea 2017 或 201 ...
- Springboot整合Shiro安全框架
最近在学习Springboot,在这个过程中遇到了很多之前都没有技术知识,学习了一阵子,稍微总结一些. ---- Shiro框架 shiro框架,是一个相对比较简便的安全框架,它可以干净利落地处理身份 ...
- SpringBoot系列之日志框架使用教程
目录 1.SpringBoot日志级别 1).日志级别简介 2).默认日志级别 3).配置日志级别 4).日志分组设置 2.SpringBoot日志格式设置 1).默认格式原理简介 2).默认日志格式 ...
- SpringBoot系列之日志框架介绍及其原理简介
SpringBoot系列之日志框架介绍及其原理简介 1.常用日志框架简介 市面上常用日志框架:JUL.JCL.jboss-logging.logback.log4j.log4j2.slf4j.etc. ...
随机推荐
- SElinux(转)
转自:http://www.361way.com/rh134-selinux/4653.html RH134小结(四)初识SElinux 2015年8月2日admin发表评论阅读评论 一.SEli ...
- Oracle Net Configuration Assistant failed异常的解决方案
来自:http://blog.itpub.net/25851087/viewspace-1419440/ 分类: Oracle [环境参数] Host OS::Win7 32bit C ...
- centos yum install 找不到软件包
yum install epel-release 然后再试试yum install 其他安装包
- MySQL 10章_视图、事务
一. 视图: 视图(view)是保存了查询语句的一种数据库对象,其数据来源是查询语句对应的数据表,他的结果与数据表查询的结果一样也是一张虚拟的数据表 . 为什么需要视图: ) 不同的用户关心的数据可能 ...
- Django form组件 与 cookie/session
目录 一.form组件 二.cookie.session 返回Django 组件 一.form组件 1.1 以注册功能为例 注册功能 1.渲染前端标签获取用户输入 --> 渲染标签 2.获取用户 ...
- JedisCluster获取key所在的节点
JedisCluster获取key所在的节点 2019年11月9日17:34:55 准备 引入jedis的jar包,这个jar包里面包含了JedisCluster,可以用它来操作集群. <dep ...
- vue+ElementUI——表格分页(前端实现方法)
1.使用ElementUI中的<el-table></el-table>和 <el-pagination></el-pagination>组件来实现 2 ...
- css---5 only-child or nth-of-type
1 _nth-child系列 :nth-child(index) <!DOCTYPE html> <html lang="en"> <head> ...
- 在Spring-boot中,为@Value注解添加从数据库读取properties支持
一般我们会把常用的属性放在工程的classpath文件夹中,以property,yaml或json的格式进行文件存储,便于Spring-boot在初始化时获取. @Value则是Spring一个非常有 ...
- SQL Server [join] 整理
[表A]Aid Aname Acode1 aa 0012 bb 0023 cc 0034 dd 004 ...
