Class HiddenHttpMethodFilter

java.lang.Object
org.springframework.web.filter.reactive.HiddenHttpMethodFilter
All Implemented Interfaces:
WebFilter

public class HiddenHttpMethodFilter extends Object implements WebFilter
Reactive WebFilter that converts posted method parameters into HTTP methods, retrievable via HttpRequest.getMethod(). Since browsers currently only support GET and POST, a common technique is to use a normal POST with an additional hidden form field (_method) to pass the "real" HTTP method along. This filter reads that parameter and changes the HttpRequest.getMethod() return value using ServerWebExchange.mutate().

The name of the request parameter defaults to _method, but can be adapted via the methodParamName property.

Since:
5.0
Author:
Greg Turnquist, Rossen Stoyanchev
  • Field Details

    • DEFAULT_METHOD_PARAMETER_NAME

      public static final String DEFAULT_METHOD_PARAMETER_NAME
      Default name of the form parameter with the HTTP method to use.
      See Also:
  • Constructor Details

    • HiddenHttpMethodFilter

      public HiddenHttpMethodFilter()
  • Method Details

    • setMethodParamName

      public void setMethodParamName(String methodParamName)
      Set the name of the form parameter with the HTTP method to use.

      By default this is set to "_method".

    • filter

      public reactor.core.publisher.Mono<Void> filter(ServerWebExchange exchange, WebFilterChain chain)
      Transform an HTTP POST into another method based on methodParamName.
      Specified by:
      filter in interface WebFilter
      Parameters:
      exchange - the current server exchange
      chain - provides a way to delegate to the next filter
      Returns:
      Mono<Void> to indicate when request processing is complete