我正在尝试为我的一个项目配置Spring Cloud Config。它以前工作得很好。但是在最新版本的Spring中,当我尝试启用身份验证时,我遇到了麻烦。这是我看到的日志。
INFO Fetching config from server at : http://localhost:8888
WARN Could not locate PropertySource: Could not extract response: no suitable HttpMessageConverter found for response type [class org.springframework.cloud.config.environment.Environment] and content type [text/html;charset=UTF-8]
INFO The following profiles are active: development
没有身份验证spring-cloud-config-client可以很好地工作,但是启用基本身份验证后,相同的代码就不能工作了。
Spring云配置服务器application.properties:
spring.application.name=my-config
server.port=8888
spring.cloud.config.server.git.uri=file:///repo/my-config
spring.security.user.name=root
spring.security.user.password=root
Spring云配置客户端 Bootstrap .yml:
spring.application.name=my-service
spring.profiles.active=development
spring.cloud.config.uri=http://localhost:8888
management.endpoints.web.exposure.include=*
spring.cloud.config.username=root
spring.cloud.config.password=root
我的配置服务器和服务项目对 Boot 和SpringCloud使用相同的version属性
<spring-boot.version>2.2.2.RELEASE</spring-boot.version>
<spring-cloud-config.version>2.2.0.RELEASE</spring-cloud-config.version>
======附加信息=====
不知何故,my-service项目没有检测到我在bootstrap.properties中指定的spring.profiles.active=development配置,我通过尝试在代码中输出此配置确认了这一点。
@Value("${spring.profiles.active}")
private String activeProfile;
logger.info("Active Profile: " + activeProfile);
奇怪的是,日志输出为空,这意味着没有活动的配置文件。所以很明显,这个bootstrap.properties配置被忽略了。为了绕过这个问题,我在my-service启动中添加了这个JVM参数。
-Dspring.profiles.active=development -Dspring.application.name=my-service
这有效地修复了配置文件未被检测到的问题。但是我仍然不清楚为什么spring.profiles.active=development配置在我的bootstrap.properties中被忽略。
2条答案
按热度按时间qvtsj1bj1#
您需要在“config-server”应用程序中提供
native
配置文件,而将development
配置文件留给客户端。配置服务器
配置-客户端
yb3bgrhw2#
1.服务器端-application.properties
1.客户端-Application.properties
这里我在配置服务器中添加了spring security依赖项,并设置了用户名和密码。在配置客户端中,我们将提供相同的用户名和密码来连接配置服务器。我还在配置客户端中添加了活动配置文件,以便它从配置服务器中获取环境特定的属性。