SpringBoot利用jasypt實現(xiàn)配置文件加密的完整指南
在實際開發(fā)中,若出于安全考慮不想暴露一些敏感的配置,如數(shù)據(jù)庫密碼等,就需要對配置文件進行加密,這個開源工具就很好幫我們實現(xiàn)這個需求
思路就是把配置文件中的值手動加密填上去,然后生產(chǎn)環(huán)境的秘鑰通過運行參數(shù)傳遞,開發(fā)測試環(huán)境可以直接把秘鑰寫在配置文件
1.引入依賴
非Spring Boot的使用方式可查閱官方文檔
github.com/ulisesbocchio/jasypt-spring-boot
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>${jasypt.spring.boot.version}</version>
</dependency>
2.yml 加入配置
# 配置秘鑰
jasypt:
encryptor:
password: ${jasypt.encryptor.password:defaultPwd}
# 需要加密的字段(明文:123456),需要使用ENC() 包裹
db:
password: ENC(bVv/e16L6qPO+1pqEPMUYT5uW1EjsERTCoIliqABM+YMr6WURdxPy26La8wHCxgF)
3.測試
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = OrderApplication.class)
public class DemoApplicationTest {
@Autowired
ConfigurableEnvironment environment;
@Autowired
StringEncryptor stringEncryptor;
static {
//指定運行環(huán)境密碼
System.setProperty("jasypt.encryptor.password", "password");
}
@Test
public void testEnvironmentProperties() {
//解密密文
System.out.println(environment.getProperty("db.password"));
}
@Test
public void encrypt() {
//此處得到加密后的文本,放入yml
System.out.println("密文: " + stringEncryptor.encrypt("123456"));
}
}
方法補充
SpringBoot配置文件加密
依賴
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>2.1.2</version>
</dependency>
設置秘鑰
jasypt.encryptor.password=秘鑰 開發(fā)環(huán)境可以直接在配置文件中指定,生產(chǎn)環(huán)境可以使用啟動命理 --jasypt.encryptor.password=XXX 進行配置 ####加密解密
package com.itdfq.springboot;
import org.jasypt.encryption.StringEncryptor;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
/**
* @author duanfangqin 2022/7/11 10:56
* @implNote
*/
@SpringBootTest
public class JasyptTest {
@Autowired
private StringEncryptor stringEncryptor;
@Test
public void encrypt(){
System.out.println(stringEncryptor.encrypt("qweasd123"));
}
@Test
public void decrypt(){
System.out.println(stringEncryptor.decrypt("zI16ovOHuYiPIQaFx9cVlJF30bg5h3ql"));
}
}
配置文件密碼設置
#Redis服務器地址 spring.redis.host=119.3.234.108 #服務器密碼 spring.redis.password=ENC(nwElWn8r6aqVHDdAStIRiEXPAiE57qUF)
ENC(加密之后的密碼)
到此這篇關于SpringBoot利用jasypt實現(xiàn)配置文件加密的完整指南的文章就介紹到這了,更多相關SpringBoot jasypt配置文件加密內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Servlet編程第一步之從零構建Hello?World應用詳細步驟+圖解
本文詳細介紹了Servlet和maven的基本概念及其在JavaWeb開發(fā)中的應用,首先解釋了Servlet是一個在服務器上處理請求的Java程序,然后介紹了maven作為管理和構建Java項目的工具,需要的朋友可以參考下2024-10-10
Spring Security基于Customizer 的分布式權限配置最佳實踐指南
本文介紹了如何通過引入“插拔式”設計模式來解決SpringSecurity開發(fā)中的痛點,包括調度中心、標準協(xié)議和業(yè)務實現(xiàn)三個部分,并詳細介紹了這個機制的工作原理、優(yōu)點和注意事項,感興趣的朋友跟隨小編一起看看吧2025-12-12
JAVA利用HttpClient進行POST請求(HTTPS)實例
下面小編就為大家?guī)硪黄狫AVA利用HttpClient進行POST請求(HTTPS)實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起 小編過來看看吧2016-11-11
Java方法遞歸的形式和常見遞歸算法(方法遞歸結合File類查找文件)
方法遞歸方法直接調用自己或者間接調用自己的形式稱為方法遞歸( recursion),遞歸做為一種算法在程序設計語言中廣泛應用,這篇文章主要介紹了Java方法遞歸的形式和常見遞歸算法-方法遞歸結合File類查找文件,需要的朋友可以參考下2023-02-02
Spring Boot如何使用Spring Security進行安全控制
要實現(xiàn)訪問控制的方法多種多樣,可以通過Aop、攔截器實現(xiàn),也可以通過框架實現(xiàn),本文將具體介紹在Spring Boot中如何使用Spring Security進行安全控制。2017-04-04

