老生常谈的配置 但是还是需要说明一下
EurekaApplication
@EnableEurekaServer指定为server端
@EnableEurekaServer
@SpringBootApplication
public class EurekaApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaApplication.class, args);
}
}
WebSecurityConfig
看到这眼熟不呢 没错 Eureka也开启spring security 在访问前台页面时也需要输入账号密码
@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
super.configure(http);
http.csrf().disable().httpBasic();
}
}
application.yml
security:user以下配置的账号密码 在访问页面需要输入的
server:
port: 7001
spring:
application:
name: eureka
security:
user:
name: admin
password: xxxxxxxxxx
eureka:
client:
fetch-registry: false
register-with-eureka: false
service-url:
defaultZone: http://admin:Xk38CNHigBP5jK75@localhost:5001/eureka
instance:
hostname: localhost
prefer-ip-address: true
logging:
config: classpath:logback.xml
level:
root: info
pom.xml
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
当访问localhost:7001 出现下图 需要填写账号密码
在其他服务注册时 也需要指定账号密码
eureka:
instance:
hostname: ${spring.cloud.client.ip-address}
prefer-ip-address: true
instance-id: ${eureka.instance.hostname}:${server.port}
//与server一致
client:
security:
basic:
user: admin
password: xxxxxxxxxxx
service-url:
defaultZone: http://${eureka.client.security.basic.user}:${eureka.client.security.basic.password}@localhost:7001/eureka