java - Spring 正常关闭 - 请求方法不支持

标签 java spring spring-mvc spring-boot

我正在尝试使用 Spring endpoints 正常关闭我的应用程序,但出现错误:

2016-08-09 13:46:54.606  WARN 13315 --- [nio-8090-exec-6] .w.s.m.s.DefaultHandlerExceptionResolver : Handler execution resulted in exception: Request method 'POST' not supported

我正在使用 this指南,我已将我的 application.properties 设置为 endpoints.shutdown.enabled=trueendpoints.shutdown.sensitive=false。我还在我的 build.gradle 中包含了 compile("org.springframework.boot:spring-boot-starter-actuator")

当我发送 CURL 请求时:curl -X POST https://localhost:8090/shutdown -k
我从服务器收到以下响应:

{"timestamp":1470747537792,"status":405,"error":"Method Not Allowed","exception":"org.springframework.web.HttpRequestMethodNotSupportedException","message":"Request method 'POST' not supported","path":"/shutdown"}

我做错了什么吗?有什么我可能会遗漏的吗?我在整个应用程序中启用了 CSRF,因此无法为我的应用程序禁用它。

最佳答案

您需要将 CSRF token 作为 header 或参数或其他内容发送。你的例子:

curl -X POST https://localhost:8090/shutdown -k

不包含 CSRF token ,因此 Spring 当然会拒绝它。这确实是 CSRF 过滤器的全部要点。您需要决定从该过滤器中排除 /shutdown uri 是否合适,或者您是否需要提供 token /随机数。

关于java - Spring 正常关闭 - 请求方法不支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38851315/

相关文章:

java - 安装 SecurityManager 时 MQQueueManager 构造函数挂起

java - CXF-JaxRS WebClient 的自定义对象输入

java - 通过 tcp 套接字从 java 服务器向 Android 客户端返回消息

spring - svn: E155021: 这个客户端太老了,无法使用 xxx 的工作副本(格式 '31' )

java - 在java中继承类是否可以,即使它不适合这项工作

java - Spring MVC 4~5版本 View 问题

java - 使用 com.cybozu.labs.langdetect 包检测字符串的语言

java - Weblogic 10.3.3/Pitchfork 中的 ClassCastException

java - thymeleaf + i18n - 如何连接 Controller 和 i18n 的值?

java - 如何使用 Spring Rest Controller 解决不明确的映射?