2017-05-11 10 views
0

私はアクチュエータのエンドポイントのほとんどに共通の接頭辞を付けようとしています。スプリングブートアクチュエータ - 1つのアクチュエータエンドポイントのmanagement.context-pathをオーバーライド

普通の接頭辞は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プロパティを設定することでそれを行うことができますが、私はそれをしたくありません。私は1つだけの変更をしたいと思います。私の選択したエンドポイントに2つのマッピングがあっても嬉しいです。

これは可能ですか?私はBoot 1.4.1を使っていて、コードをデバッグして何か助けにはならなかった。

答えて

0

endpoints.info.pathで調整できませんか?他のすべてを残してください /actuator/...

編集:私は上記のアプローチをテストし、うまくいきませんでした。あなたは次のようにリダイレクトを実装することができます:

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

これは良い提案です、それは確かに動作します。問題は、私はこの機能を必要とする多くのアプリケーションを持っており、すべてのアプリケーションに渡される集中システムプロパティを変更することがコード変更よりもはるかに優先されることです。 – maciej

+0

なぜ別のパスでそれらを必要としますか?たぶん、問題の背景を追加することができます@maciej –

+0

ヘルスエンドポイントは、特定のパスで既に公開されており、さまざまなツールで消費されています。他のすべてのエンドポイントは公開され(現在はすべて無効になっています)、別のパスで公開する必要があるため、パスに基づいてアクセスを制限することができます。それが終わったら、私は健康のエンドポイントをチェックするすべてのツールに影響を与えたくありません。それはそのまま動作する必要があります。したがって、健康のエンドポイントは、他のすべてのものとは異なるパスを持つエンドポイントです。 – maciej

関連する問題