上一篇已经讲了怎样搭建基于eureka的服务注册中心,在最后我们直接访问http://127.0.0.1:8003/ 即可查看我们的服务注册信息,这在生产上是非常不安全的,因此我们需要对我们的注册中心进行安全认证,具体方案如下:
1、在我们的注册中心添加security依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
2、在yml配置文件中添加以下内容:
spring:
application:
name: eurekaserver
security:
user:
name: admin
password: admin
3、在我们的eureka默认注册地址中写上我们安全验证的账户和密码
eureka:
client:
register-with-eureka: false
fetch-registry: false
service-url:
defaultZone: http://admin:admin@127.0.0.1:8003/eureka/
此时再次访问我们原来的注册中心地址就需要密码才能访问,页面如下:输入账户和密码之后即可查看我们的注册中心信息
在添加安全验证的时候踩了一个坑,我yml中security最初的配置如下所示
security:
basic:
enabled: true
user:
name: admin # 用户名
password: admin # 用户密码
之后即使我账户名密码正确也登陆不上,此时需要将以下配置删除,网上说的是这个配置在最新版本中已经删除,具体原因还需研究
basic:
enabled: true
之后即可使用账户名和密码登录查看