Eureka自带了一个Web的管理页面,方便我们查询注册到上面的实例信息。但是在实际的使用中,注册中心地址有公网IP的话,必然能直接访问到,这样是不安全的,所以我们需要对Eureka进行改造,加上权限认证来保证安全性。
改造Eureka注册中心,及服务端,通过集成Spring-Security来进行安全认证。
第一:添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
<version>2.2.5.RELEASE</version>
</dependency>
第二:在配置文件application.yml中加上认证的配置信息
spring:
security:
user:
name: smile
password: 111111
第三:增加Security配置类
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
/**
* Security相关配置类
*/
@Configuration
@EnableWebSecurity
public class WebSecurituConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
//关闭csrf
http.csrf().disable();
//支持httpBasic
http.authorizeRequests()
.anyRequest()
.authenticated()
.and()
.httpBasic();
}
}
第四:重新启动注册中心,访问url,这时候浏览器会提示你输入用户名和密码,输入正确后才能继续访问Eureka提供的管理页面。
在Eureka开启认证后,客户端注册的配置也要加上认证的用户名和密码信息
eureka:
client:
serviceUrl:
defaultZone: http://smile:111111@localhost:8761/eureka/