2

我使用 spring cloud gateway HoxtonSR8、spring boot 2.3.4 和 spring actuator

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>

我想在所有执行器端点上设置密码,包括健康和信息,以便只有经过身份验证的用户才能调用它们。但据我所知,它只能使用 spring security 来完成,但这个框架与网关不兼容。

如何在云网关的执行器上设置密码?

4

1 回答 1

0

执行器端点显示有关应用程序的敏感信息。

要密码保护执行器端点,请按照以下步骤操作:

第 1 步spring-boot-starter-securitypom.xml.

   <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-security</artifactId>
   </dependency>

感谢SpringBoot Auto Configuration. 它会自动初始化所​​有与安全相关的组件。

第 2 步:在您的属性/yaml 文件中定义用户名和密码。

请参阅下面的配置。

spring:
  security:
    user:
      name: admin
      password: ********

第 3 步:重新启动应用程序并尝试访问安全端点。

您应该得到“401 Unauthorized”响应。

第 4 步:在浏览器中打开执行器端点,它将提示输入用户名/密码。

如果您只想保护执行器端点,请添加以下配置:

server:
  port: 8080
  context-path: /MyApplication

security:
   user:
       name: admin
       password: secret
   basic:
       enabled: false

management:
   context-path: /actuator
   security:
             enabled: true

这将确保禁用应用程序安全性,但为执行器端点启用。

注意:不要在管理安全下配置用户名/密码,否则将不起作用。

于 2020-11-05T09:46:46.183 回答