У меня проблема с защитой Eureka и моего сервера Config до того, как я запустил его в производство Это довольно простая система, и она должна работать, но Эврика выдает мне исключение после запуска. Он отображается только при включении Spring Boot Security, но без него работает нормально. com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection refused (Connection refused)
Вот мои конфигурационные файлы:
ConfigServer application.yml
server:
port: 8888
spring:
cloud:
config:
server:
git:
uri: https://github.com/starrynights89/spring-social-config-server
security:
user:
name: user
password: password
bootstrap.yml для Eureka
spring:
application:
name: eureka
cloud:
config:
label: session
password: password
Eureka application.yml
server:
port: 8761
eureka:
instance:
hostname: localhost
client:
registerWithEureka: false
fetchRegistry: false
serviceUrl:
defaultZone: http://user:password@${eureka.instance.hostname}:${server.port}/eureka/
ConfigServer.java
package com.alexander.springsocial;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.config.server.EnableConfigServer;
import org.springframework.context.annotation.Bean;
import org.springframework.security.core.userdetails.User;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.provisioning.InMemoryUserDetailsManager;
@SpringBootApplication
@EnableConfigServer
public class SpringSocialConfigServer {
public static void main(String[] args) {
SpringApplication.run(SpringSocialConfigServer.class, args);
}
@Bean
UserDetailsService userDetailsService() {
return new InMemoryUserDetailsManager(
User.withDefaultPasswordEncoder()
.username("user")
.password("password")
.roles("USER").build());
}
}
EurekaServer.java
package com.alexander.springsocial;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.core.userdetails.User;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.provisioning.InMemoryUserDetailsManager;
@SpringBootApplication
@EnableEurekaServer
public class SpringSocialEurekaServerApplication {
public static void main(String[] args) {
SpringApplication.run(SpringSocialEurekaServerApplication.class, args);
}
@Bean
UserDetailsService userDetailsService() {
return new InMemoryUserDetailsManager(
User.withDefaultPasswordEncoder()
.username("user")
.password("password")
.roles("USER").build());
}
@Configuration
protected static class SecurityPolicy extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.anyRequest().authenticated()
.and()
.httpBasic()
.and()
.csrf().disable();
}
}
}
Еще один странный аспект заключается в том, что сервер Eureka работает на порту 8080, хотя в файле .yml указан порт 8761:
Любая помощь или указатели будут оценены!