先決條件:要使用加密和解密功能坏瘩,您需要安裝在JVM中的全功能JCE(默認(rèn)情況下不存在)屉来。您可以從Oracle下載“Java加密擴(kuò)展(JCE)無(wú)限強(qiáng)度管轄策略文件”焕阿,并按照安裝說(shuō)明進(jìn)行操作(基本上將JRE lib / security目錄中的2個(gè)策略文件替換為您下載的那些文件)钾挟。
要配置一個(gè)對(duì)稱(chēng)密鑰舔株,只需要設(shè)置encrypt.key一個(gè)秘密字符串(或者使用一個(gè)環(huán)境變量ENCRYPT_KEY使其不在純文本配置文件中)莺琳。
server:
port: 8080
spring:
cloud:
config:
server:
git:
uri: https://xxxxx #自己的git配置倉(cāng)庫(kù)
username:
password:
encrypt:
key: cool
如果你正在為配置客戶(hù)端應(yīng)用程序設(shè)置一個(gè)遠(yuǎn)程配置庫(kù),它可能包含這樣的一個(gè)application.yml例如:
- application.yml
spring:
datasource:
username: dbuser
password: '{cipher}FKSAJDFGYOS8F7GLHAKERGFHLSAJ'
.properties文件中的加密值不能包含在引號(hào)中载慈,否則該值不會(huì)被解密:
- application.properties
spring.datasource.username:dbuser
spring.datasource.password:{cipher} FKSAJDFGYOS8F7GLHAKERGFHLSAJ
服務(wù)器也暴露/encrypt和/decrypt端點(diǎn)(假設(shè)這些將被保護(hù)惭等,并且只能被授權(quán)代理訪問(wèn))。如果您正在編輯遠(yuǎn)程配置文件办铡,則可以使用配置服務(wù)器通過(guò)發(fā)送到/encrypt端點(diǎn)來(lái)加密值
最后我們?cè)L問(wèn) 127.0.0.1:8080/master/laojiao.yml
即可顯示解密后的配置內(nèi)容