春雲: 從配置伺服器獲取配置

https://dev.to/saladlam/spring-cloud-get-configuration-from-config-server-19ok

Spring Cloud:從設定伺服器獲取配置

使用以下庫:

Java 17
Spring Framework 6.1.6
Spring Cloud Common 4.1.2
Spring Cloud Config Client 4.1.2

配置的最低條目為:

spring.application.name=example-application
spring.config.import=configserver:https://localhost:8888

應用程序啟動時,從 https://localhost:8888/example-application/default 檢索配置。回應的內容類型必須為 application/json。下面是回應的範例:

HTTP/1.1 200 Content-Type: application/json Transfer-Encoding: chunked Date: Tue, 21 May 2024 10:00:00 GMT

{“name”:”example-application”,”profiles”:[“default”],”label”:null,”version”:null,”state”:null,”propertySources”:[{“name”:”file:/C:/work/temp/config/example-application-default.properties”,”source”:{“a.b.c”:”d”}},{“name”:”file:/C:/work/temp/config/example-application.properties”,”source”:{“a.b”:”c”,”a.a”:”b”,”message”:”Hello world!”}}]}

檢索邏輯定義在 org.springframework.cloud.config.client.ConfigServerConfigDataLoader#getRemoteEnvironment,配置類別是 org.springframework.cloud.config.client.ConfigClientProperties。

可以通過以下方式指定基本 HTTP 驗證:

spring.application.name=example-application
spring.config.import=configserver:https://localhost:8888
spring.cloud.config.username=user
spring.cloud.config.password=pass

檢索配置後,在 ApplicationContext 中的 PropertySources 列表中插入兩個條目。

解密加密的秘密

配置中的屬性值可以被加密。編碼值有一個前綴{cipher}。

message={cipher}0123456789abcfef0123456789abcfef

解密在 org.springframework.cloud.bootstrap.encrypt.DecryptEnvironmentPostProcessor#postProcessEnvironment 中完成。

默認算法是 AES/CBC/PKCS5Padding。encrypt.key 是一個字符串密碼,然後通過 PBKDF2 哈希函數(Java 實現是 com.sun.crypto.provider.PBKDF2KeyImpl)生成一個 256 位密鑰。

encrypt.key=any_string_is_ok

解密後,在 ApplicationContext 中的 PropertySources 列表中插入名為 decrypted 的 SystemEnvironmentPropertySource。

via DEV Community

June 8, 2024 at 03:47AM

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *