我读了How to shutdown a Spring Boot Application in a correct way?,所以我尝试使用http shutdown endpoints关闭我的spring boot嵌入式tomcat应用程序。
但是我只需要localhost访问它,这样就没有其他人会关闭我的应用程序。
我发现我可以使用management.address=127.0.0.1
不允许远程管理连接。
但是,如果我需要某些端点,例如/health
,/info
仍然可以远程访问,该怎么办?
有没有办法 ONLY 挂钩关闭端点,以便我可以检查请求者ip?
答案 0 :(得分:0)
一些可能的解决方案:
阻止来自非本地主机访问的所有执行器,并编写将重新公开请求的执行器的代理@Controller
。当有人撞到端点时,它可以调用执行器本身,收集执行器的响应,然后将其返回。
公开所有执行器,并在关闭端点前放置一个servlet过滤器,阻止任何不是本地主机的客户端。
我认为第一种可能是最安全,最简单的解决方案。