spring-mvc - 在 spring mvc 中过滤特定的 HTTP 动词

标签 spring-mvc

由于某些客户端请求 HTTP PROPFIND,我的 Spring MVC 应用程序中出现了很多错误:

16:59:39,402错误[foo.bar.controllers.ExceptionHandlingController](默认任务12)未捕获错误:org.springframework.web.HttpRequestMethodNotSupportedException:不支持请求方法“PROPFIND”

如何过滤此请求,以便它们不会在每个 Controller 中生成错误?

谢谢!

最佳答案

您可以使用 Spring 的 HandlerInterceptor 来允许和处理所需的请求。

RequestMethodInterceptor类:

package com.myproject.RequestMethodInterceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class RequestMethodInterceptor implements HandlerInterceptor  {
    @Override
    public boolean preHandle(HttpServletRequest request,
            HttpServletResponse response, Object handler) throws Exception {
        //Added PROPFIND method, add any other types NOT allowed
        if(request.getMethod().equals("PROPFIND") ) {
            //Log or Ignore upon your requirement & return false
            return false;
        } else {
            return true;
        }

    }
}

XML 配置:

<mvc:interceptors>
      <bean class="com.myproject.RequestMethodInterceptor" />
    </mvc:interceptors> 

关于spring-mvc - 在 spring mvc 中过滤特定的 HTTP 动词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40321854/

相关文章:

json - 使用 Jackson JSON View 而不注释原始 bean 类

java - POJO Web服务应用程序可以在没有Spring框架的Spring应用程序中运行吗

java - 如何在 Spring 注销前执行操作?

java.lang.NoClassDefFoundError : javax/el/ValueExpression in jSTL using Spring-MVC

java - "Dump"运行集成测试时的hql数据库

java - MockMvc 和 Spring Security - Null FilterChainProxy

java - Spring Web MVC Hibernate 集成错误

java - 如何登录我的新 Spring Boot 应用程序?

java - 如何将spring MVC应用程序注册到spring boot admin

java - Spring MVC/Rest - 返回标准响应