1. 程式人生 > >微服務SpringCloud—Config Server對稱加密

微服務SpringCloud—Config Server對稱加密

con nbsp stc refresh 下載地址 user 進行 加密解密 blog

配置內容的加解密
在Git倉庫中明文存儲配置屬性的。很多場景下,對於某些敏感的配置內容(例如數據庫賬號、密碼等),應當加密存儲。

Config對稱加解密
1、安裝JCE
默認情況下我們的JRE自帶了JCE,但是默認是一個有限長度的版本,需要到oracle官網下載一個不限長度的JCE。

JCE下載地址
https://www.oracle.com/technetwork/java/javase/downloads/jce-all-download-5170447.html

下載JCE並解壓(eg:jce_policy-8.zip),按照其中的README.txt的說明安裝。

JCE的安裝非常簡單,其實就是將JDK/jre/lib/security目錄中的兩個jar文件(local_policy.jar、US_export_policy.jar)替換為壓縮包中的jar文件。

2、在config server服務的bootstrap.yml文件中配置對稱密匙

#博客:https://blog.csdn.net/u014296316/article/details/80881974
#http://localhost:6063/encrypt/status  驗證加密解密功能是否正常
#http://localhost:6063/encrypt 只允許post請求
#http://localhost:6063/decrypt 只允許post請求
encrypt:
  key: Lynch

3、訪問 http://localhost:6063/encrypt/status 驗證加密解密功能是否正常

4、訪問/encrypt和/decrypt進行加密解密
http://localhost:6063/encrypt 只允許post請求
技術分享圖片

http://localhost:6063/decrypt 只允許post請求
技術分享圖片

5、配置文件中使用{cipher}開頭標識加密數據
技術分享圖片

6、在Config Client服務獲取加密數據

import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController; /** * 這邊的@RefreshScope註解不能少,否則即使調用/refresh,配置也不會刷新 */ @RestController @RefreshScope public class ConfigClientController { @Value("${env}") private String env; @Value("${password}") private String password; @Value("${username}") private String username; @GetMapping("/config/profile") public String hello() { return this.env+","+this.password+","+this.username; } }

http://localhost:6062/config/profile
技術分享圖片

微服務SpringCloud—Config Server對稱加密