Spring Cloud: پیکربندی را از سرور پیکربندی دریافت کنید

از کتابخانه زیر استفاده می شود
- جاوا 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
پس از بازیابی پیکربندی، دو ورودی در آن درج می شود PropertySources لیست در ApplicationContext.
ارزش ویژگی در پیکربندی را می توان رمزگذاری کرد. مقدار رمزگذاری شده دارای یک پیشوند است {رمز}.
message={cipher}0123456789abcfef0123456789abcfef
رمزگشایی در انجام می شود org.springframework.cloud.bootstrap.encrypt.DecryptEnvironmentPostProcessor#postProcessEnvironment.
الگوریتم پیش فرض است AES/CBC/PKCS5Padding. اموال از encrypt.key یک رمز عبور رشته ای است، سپس یک کلید 256 بیتی توسط تابع هش PBKDF2 تولید می شود (پیاده سازی جاوا com.sun.crypto.provider.PBKDF2KeyImpl).
encrypt.key=any_string_is_ok
پس از رمزگشایی، یک SystemEnvironmentPropertySource از نام رمزگشایی شده است در لیست PropertySources در ApplicationContext درج می شود.