在Spring Boot应用程序中禁用HTTP OPTIONS方法

我已经在spring boot应用程序上开发了rest

API。这些API仅接受GET和POST,但是在使用OPTIONS方法请求时,API会响应200状态(而不是405)。我用谷歌搜索了这个问题,但是没有一个解决方案是基于springboot的。

响应:

Allow: OPTIONS, TRACE, GET, HEAD, POST

Public: OPTIONS, TRACE, GET, HEAD, POST

需要禁用OPTIONS方法。

回答:

先前的答仅适用于tomcat,因此也要添加我的。您可以通过例如使用标准的servlet过滤器来禁用方法交叉容器:

import java.io.IOException;

import javax.servlet.FilterChain;

import javax.servlet.ServletException;

import javax.servlet.ServletResponse;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Component;

import org.springframework.web.filter.OncePerRequestFilter;

@Component

public class MethodFilter extends OncePerRequestFilter {

@Override

protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)

throws ServletException, IOException {

if (request.getMethod().equals("OPTIONS")) {

response.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED);

} else {

filterChain.doFilter(request, response);

}

}

}

注意:假设此类由Spring组成。如果没有,您可以使用此处详细介绍的其他注册方法。

以上是 在Spring Boot应用程序中禁用HTTP OPTIONS方法 的全部内容, 来源链接: utcz.com/qa/436446.html

回到顶部