【问题标题】:Spring Boot Actuator - override management.context-path for one actuator endpointSpring Boot Actuator - 覆盖一个执行器端点的 management.context-path
【发布时间】:2017-05-11 06:11:20
【问题描述】:

我正在尝试为我的大多数执行器端点使用一个通用前缀。

我知道我可以使用management.context-path 设置一个通用前缀,例如/actuator。在这种情况下,我的http://localhost:8080/actuator 会吐出像

这样的链接

self: { href: "http://localhost:8080/actuator" }, info: { href: "http://localhost:8080/actuator/info" }, env: { href: "http://localhost:8080/actuator/env" },

但是,我想取消/更改其中一个前缀,例如 info,因此链接为 http://localhost:8080/other/info,而所有其他链接保持不变。

我知道我可以通过设置所有 endpoints.*.path 属性来做到这一点,但我不想这样做。我只想做一个改变。如果我选择的端点有两个映射,我也会很高兴。

这可能吗?我在 Boot 1.4.1 上,已经调试了代码,但没有发现任何有用的东西。

【问题讨论】:

    标签: spring-boot spring-boot-actuator


    【解决方案1】:

    不能通过设置endpoints.info.path来调整吗?其他的都留给/actuator/...

    编辑:好的,我测试了上面的方法但没有奏效。您可以像这样实现重定向:

    @GetMapping("/info")
    public String info() {
        return "redirect:/actuator/info";
    }
    

    【讨论】:

    • 这是一个很好的建议,确实可行。问题是我有很多应用程序需要此功能,并且修改传递给每个应用程序的集中式系统属性比更改代码更可取。
    • 为什么在不同的路径上需要它们?也许您可以为问题添加一些背景@maciej
    • 健康端点已经暴露在给定的路径并被各种工具使用。现在将公开所有其他端点(它们现在都已禁用)并且需要在不同的路径上公开,因此我们可以根据路径限制对它们的访问。完成后,我不想影响所有检查运行状况端点的工具——它们需要继续按原样工作。因此,健康端点是与所有其他端点具有不同路径的端点。
    • 好的,我想至少有 3 个选项。 1.您自己提到的方法,修改除health之外的所有端点的路径2.您可以为其他端点启用management security或启用endpoint sensitivity 3.在spring之外实施限制。例如负载均衡器
    • 我已经修改了所有人的路径,因为这是最快的方式。如果这证明难以维护,我可能会修改负载均衡器的配置。谢谢!
    猜你喜欢
    • 2015-11-15
    • 2021-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-01
    • 2020-09-15
    • 2016-09-07
    • 2021-04-24
    相关资源
    最近更新 更多