На моем локальном компьютере запущен клиент Spring Cloud Config (приложение Spring Boot 2.0.5). Он подключается к серверу Spring Cloud Config, на котором включена базовая аутентификация. Все работает отлично, пароль НЕ зашифрован в конфигурационном файле клиента. Итак, свойства:
spring.cloud.config.username=rxcon
spring.cloud.config.password=rxcon
Теперь, когда я перемещаю Spring Boot на другой компьютер и настраиваю его для взаимодействия с другим сервером Spring Cloud Config (который имеет те же учетные данные rxcon / rxcon), я получаю 401 несанкционированный ответ. Поэтому я подумал, что что-то не так с паролем имени пользователя. Мы проверяли снова и снова, и они верны.
Поэтому я увеличил ведение журнала и ожидал, что заголовок авторизации будет иметь значение, подобное:
Basic cnhjb246cnhjb24=
Тем не менее, фактический заголовок:
Basic cnhjb246Pz91Pz8/aWY/Pz9dBD8eJA==
Что расшифровано:
rxcon:??u???if???]?$
Значит, имя пользователя правильное, но что происходит с паролем?
Примечание 1: мы проверили фактическое значение провода заголовка с помощью tcpdump, и да, это неправильное значение.
Примечание 2: значение заголовка Auth не изменяется при изменении пароля.
Примечание 3: когда мы записываем значение свойства (spring.cloud.config.password), мы видим правильный пароль (rxcon)
Примечание 4: протестировано с JDK 1.8, 10 и 11
Если я вставлю файл bootstrap.properties в файл jar, будут ли значения переопределены внешним загрузчиком .properties?