Eureka服务端就是服务注册中心,而服务提供者、服务消费者对Eureka来说都是客户端。
适用的spring cloud 版本
<spring-cloud.version>Greenwich.RC2</spring-cloud.version>
<spring-cloud.version>Finchley.SR2</spring-cloud.version>
一、Eureka服务端配置
添加spring-boot-starter-security
更改pom.xml文件:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
设置用户名密码
更改application.yml
:
spring:
security:
user:
name: eureka
password: eureka
代码修改
重写WebSecurityConfigurerAdapter的configure方法,因为 Spring Security 默认开启了所有 CSRF 攻击防御,需要禁用 /eureka 的防御。
-
方法一
在 Application 入口类增加忽略配置,类直接继承WebSecurityConfigurerAdapter,重写configure方法
@SpringBootApplication @EnableEurekaServer public class LwpEurekaApplication extends WebSecurityConfigurerAdapter{ public static void main(String[] args) { SpringApplication.run(LwpEurekaApplication.class, args); } @Override protected void configure(HttpSecurity http) throws Exception { http.csrf().ignoringAntMatchers("/eureka/**"); super.configure(http); } }
-
方法二
新建一个类重写configure方法即可
@Configuration // 或者@EnableWebSecurity public class WebSecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.csrf().ignoringAntMatchers("/eureka/**"); super.configure(http); } }
重启,打开http://localhost:8761。如果需要你输入密码,说明安全模块生效了,输入你设置的用户名和密码,可以进入就可以了。
二、Eureka客户端配置
更改application.properties
:
eureka.client.serviceUrl.defaultZone=http://dubby:dubby@localhost:8761/eureka/
注意格式是
eureka.client.serviceUrl.defaultZone=http://${userName}:${password}@localhost:8761/eureka/
至此,Eureka的基本安全配置结束了。