在第 16.4 节中,我们讨论了如何使用 HTTP 基本验证,保护 Actuator 端点。这样做,就可以把所有不知道密码的人挡在门外。不幸的是,这也意味着 Admin 服务端也将无法使用 Actuator 端点,除非它知道用户名和密码。但是 Admin 服务端将如何获得那些凭据呢?
Admin 客户端应用程序,可以向 Admin 服务端提供其凭据。可以直接向 Admin 服务端注册,也可以通过 Eureka 被发现。如果应用程序直接向 Admin 服务端注册,那么它可以在注册时,将其凭据发送到 admin 服务端。您需要配置一些属性来启用该功能。
spring:
boot:
admin:
client:
url: http://localhost:9090
instance:
metadata:
user.name: ${spring.security.user.name}
user.password: ${spring.security.user.password}
必须在每个注册的应用程序中设置用户名和密码属性,它本身与 Admin 服务端连接。且给定的值必须与 Actuator 端点 HTTP 基本身份验证中,所需的用户名和密码匹配。在本例中,它们被设置为 admin 和 password,这是为访问 Actuator 端点所需的凭据。
eureka:
instance:
metadata-map:
user.name: admin
user.password: password
当应用程序向 Eureka 注册时,凭证将包含在 Eureka 注册记录的元数据中。Admin 服务端发现应用程序时,它从 Eureka 获取凭据,以及有关应用程序的其他详细信息。