由于工作等种种原因未能连续进行学习,现在继续学习微服务,不过是新建的demo,springcloud版本用的是Finchley.SR2。
之前用简单demo实现了注册中心,现在来对注册中心加安全验证:
一、添加依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency>
二、修改配置文件
设置安全认证的用户名跟密码:
##验证的用户名和密码
spring.security.user.name=zrk
spring.security.user.password=123
修改eureka访问url
eureka.client.service-url.defaultZone=http://${spring.security.user.name}:${spring.security.user.password}@${eureka.instance.hostname}:${server.port}/eureka/
三、重启eureka服务
访问,界面如下:
输入用户名、密码即可
四、客户端注册到注册中心
修改配置文件
eureka.client.serviceUrl.defaultZone=http://zrk:123@localhost:30000/eureka/
五、在eureka服务添加配置
看springcloud官方文档Securing The Eureka Server这部分,有如下内容
只需通过Spring -boot-starter- security将Spring Security添加到服务路径中,就可以保护Eureka服务。默认情况下,当Spring Security位于类路径上时,它将要求在每次向应用程序发送请求时都发送一个有效的CSRF令牌。Eureka客户机通常不会拥有一个有效的跨站点请求伪造令牌(CSRF),您需要禁用/ Eureka /**端点的这个请求
,举例:
@EnableWebSecurity class WebSecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.csrf().ignoringAntMatchers("/eureka/**"); super.configure(http); } }
配置完成重启即可。