一、Spring Cloud2.0以上
1、在pom.xml文件中添加security依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
2、在application.properties文件中添加配置:
spring.application.name=eureka-server //服务名称
server.port=9911 //服务端口
#security.basic.enabled=true //新版本已弃用,引入security包后默认开启
spring.security.user.name=admin //配置登录的账号是admin
spring.security.user.password=admin //配置登录的密码是admin
3、关闭csrf检验
因为新版本中security默认开启了scrf检验,因此需要将security的scrf检验设置为false。
设置方法:在eureka server启动类中添加@EnableWebSecurity注解,继承WebSecurityConfigurerAdapter并重写configure方法。
@EnableWebSecurity
@EnableEurekaServer
@SpringBootApplication
public class SpringcloudEurekaServerApplication extends WebSecurityConfigurerAdapter {
public static void main(String[] args) {
SpringApplication.run(SpringcloudEurekaServerApplication.class, args);
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http.csrf().disable();
// 为了可以使用 http://${user}:${password}@${host}:${port}/eureka/
// 这种方式登录,所以必须是httpBasic,
// 如果是form方式,不能使用url格式登录
http.authorizeRequests().anyRequest().authenticated().and().httpBasic();
}
}
4、客户端配置添加认证信息
因为服务端添加了安全认证,如果客户端不添加安全认证,就会出现与服务端连接不上的情况,因此客户端也需要添加安全认证。
配置信息:eureka.client.serviceUrl.defaultZone=http://admin:admin@localhost:9090/eureka/
这样,启动注册中心时会提示你输入账号信息:
输入账号信息后能够正常进入注册中心,表示eureka添加security安全认证成功。