当前位置: 首页 > 知识库问答 >
问题:

使用Spring引导执行器安全地关闭rest服务器?

幸弘光
2023-03-14
curl -X POST localhost:port/shutdown

共有1个答案

何晗昱
2023-03-14

Spring Boot关闭endpoint调用这个类:org.springframework.Boot.actuate.endpoint.ShutDownEndpoint,它调用您的ApplicationContext上的Close()。这反过来...

  • 破坏beans
  • 关闭豆厂
  • 停止嵌入式servlet容器

如果您的bean是有序的,并且有精心编写的关机方法,那么这应该没问题。但如果不是,那么在关闭周期的某个点,“3个客户端正在运行的作业”可能会被中断。此外,在您调用shutdown和shutdown周期启动之间的小时间窗口内,可能会建立新的连接。

public class ShutdownListener implements ApplicationListener<ContextClosedEvent> {
    @Override
    public void onApplicationEvent(ContextClosedEvent event) {
        // 
    }
}

您可以实现这个侦听器,使它

  • 拒绝带有HTTP 503的连接请求(如果您不处理HTTP请求,则拒绝该连接请求)
  • 暂停以允许在继续关闭周期之前完成任何飞行作业

注册这个监听器的方式与在Spring Boot中注册任何ApplicationListener的方式相同,例如。

SpringApplication app = new SpringApplication(MyApplication.class);
app.addListeners(new ShutdownListener());
 类似资料:
  • 我目前正在尝试使用PrAG堆栈来监视基于Spring Boot的微服务。有2个spring boot Projects1.5.4(pom.xml)配置了以下依赖项以获取度量并将度量转换到prometheus服务器:

  • 我在我的应用程序中使用了Spring-Boot1.3.1和Spring-Boot-Actutor。我使用作为中的父级。 为了禁用安全性,我在中添加了2个条目。 它仍然没有禁用基本的安全性。当我在本地Tomcat中启动应用程序时,我看到日志文件中的默认密码。

  • 我正在Lynda.com https://www.lynda.com/spring-tutorials/spring-boot-actuator/653258/709599-4.html?autoplay=true上学习spring-boot教程,演示者简单地说关闭管理安全性这就是application.yml的样子 是否有一种方法可以将application.yml设置为默认属性文件,我在这里遗

  • 我第一次使用Spring Boot应用程序时,执行器是不安全的,所以很容易通过/acture/shutdownendpoint远程关闭。最近,我已经使用Spring安全保护了我的执行器,它已经起作用了。现在我需要提供http基本凭据来访问endpoint,但现在对/acture/shutdownendpoint的curl调用失败,出现禁止错误。我一定是配置不正确的地方。 我的卷曲命令: 我的配置:

  • 我正在构建一个Android应用程序--其中的一个关键部分将包括与服务器API的集成。该应用程序只是一个辅助项目,我真的只是在寻找我计划的API安全性的验证和最佳实践的建议,以及其他应用程序如何做到这一点。 该应用程序将是移动的(首先,没有网站)-我希望能够创建用户帐户从应用程序,一旦注册,使用中央网络API访问/更新安全的用户特定的内容。 可公开访问的注册和登录的POSTendpoint 用户特

  • 我一直在阅读Spring引导执行器,我很难区分两个应用程序。属性设置 我想自定义执行器endpoint的访问规则。我可以使用属性控制所有执行器endpoint灵敏度。我的理解是,敏感endpoint将需要授权。我还可以通过属性更改endpoint的可访问性。 敏感度控制和安全启动之间有什么区别?