雜項-SpringBoot-Jasypt:Jasypt(安全框架)


ylbtech-雜項-SpringBoot-Jasypt:Jasypt(安全框架)

 

1. 使用jasypt加密Spring Boot應用中的敏感配置返回頂部
1、

本文講述了在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、
2.返回頂部
 
3.返回頂部
 
4.返回頂部
 
5.返回頂部
0、
0.1、
1、
2、
 
6.返回頂部
 
warn 作者:ylbtech
出處:http://ylbtech.cnblogs.com/
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM