Class HiddenHttpMethodFilter
- java.lang.Object
- org.springframework.web.filter.reactive.HiddenHttpMethodFilter
- All Implemented Interfaces:
WebFilter
public class HiddenHttpMethodFilter extends Object implements WebFilter
ReactiveWebFilter
that converts posted method parameters into HTTP methods, retrievable viaHttpRequest.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 theHttpRequest.getMethod()
return value usingServerWebExchange.mutate()
.The name of the request parameter defaults to
_method
, but can be adapted via themethodParamName
property.- Since:
- 5.0
- Author:
- Greg Turnquist, Rossen Stoyanchev
Field Summary
Fields Modifier and Type Field Description static String
DEFAULT_METHOD_PARAMETER_NAME
Default name of the form parameter with the HTTP method to use.
Constructor Summary
Constructors Constructor Description HiddenHttpMethodFilter()
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description reactor.core.publisher.Mono<Void>
filter(ServerWebExchange exchange, WebFilterChain chain)
Transform an HTTP POST into another method based onmethodParamName
.void
setMethodParamName(String methodParamName)
Set the name of the form parameter with the HTTP method to use.
Field Detail
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:
- Constant Field Values
Constructor Detail
HiddenHttpMethodFilter
public HiddenHttpMethodFilter()
Method Detail
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 onmethodParamName
.