Я пытаюсь защитить свой сервер конфигурации Spring Cloud.В качестве первого шага я последовал руководству, которое довольно просто сделать.Конфиг-сервер работает нормально без авторизации.Но проблема начинается, когда я хочу использовать очень простую базовую аутентификацию.Я определяю свой собственный пользователя и пароль в свойствах spring.security.user.name и spring.security.user.password , но служба, похоже, не работает с ними.
Когда я просто оставляю эти свойства и использую «пользователя» по умолчанию и сгенерированный пароль, тогда все в порядке.Я застрял с этим некоторое время и пытаюсь решить.
Вот важная часть моего файла конфигурации pom.xml file:
<artifactId>tao-elszamolas-config</artifactId>
<packaging>jar</packaging>
<name>tao-elszamolas-config</name>
<description>Some config service</description>
<parent>
<groupId>com.mycompany.tao</groupId>
<artifactId>tao-elszamolas</artifactId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<dependencies>
<!-- Spring Cloud config server -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
<!-- Spring Cloud Eureka client -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<!-- Spring Security -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<repositories>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
И это сервер конфигурации application.yml :
server:
port: 9001
spring:
application:
name: config-server
cloud:
config:
server:
git:
uri: file://${user.home}/application-config
clone-on-start: true
security:
user:
name: configUser
password: configPassword
eureka:
client:
serviceUrl:
defaultZone: http://localhost:9002/eureka/
Клиент конфигурации в основном является службой обнаружения.(Я хочу реализовать первую модель обнаружения, используемую другими микросервисами.) Вот важная часть pom.xml для службы клиента конфигурации (служба обнаружения в моем случае):
<name>tao-elszamolas-discovery</name>
<description>Some service discovery</description>
<parent>
<groupId>com.mycompany.tao</groupId>
<artifactId>tao-elszamolas</artifactId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<dependencies>
<!-- Spring Cloud Netflix Eureka service registry server -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
<!-- Spring Cloud config client -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-client</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<repositories>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
И это bootstrap.yml для службы клиента конфигурации:
spring:
application:
name: discovery-server
cloud:
config:
name: discovery-server
uri: http://localhost:9001
username: configUser
password: configPassword
Итак, если я удалю имя пользователя и пароль из application.yml сервера конфигурации и я использую по умолчанию user в качестве имени пользователя и сгенерированный пароль в bootstrap.yml сервера обнаружения, тогда все работает нормально.
Кто-нибудьЕсть идеи, почему пользовательские имя пользователя и пароль не работают?
Любая помощь будет принята с благодарностью.Возможно, я совершил очень тривиальную ошибку и просто не понял ее.