使用Spring验证框架验证请求标头
作者:互联网
是否可以将Spring验证框架与Spring MVC一起使用以验证HTTP请求标头的存在和值?
解决方法:
要检查请求标头的存在,您不需要验证框架.默认情况下,请求标头参数是必需的,如果请求中缺少必需标头,Spring MVC会自动响应400 Bad Request.
因此,以下代码自动检查标题“ Header-Name”的存在…
@PostMapping("/action")
public ResponseEntity<String> doAction(@RequestHeader("Header-Name") String headerValue) {
// ...
}
…并且如果标头是可选的,则注释将需要替换为:
@RequestHeader(name = "Header-Name", required = false)
要检查请求标头的值,可以使用Spring验证框架.为此,您需要
>将@Validated添加到控制器类.在实施this feature之前,这是一种解决方法.
>将JSR-303注释添加到请求标头参数中,例如
@RequestHeader("Header-Name") @Pattern(regexp = "[A-Za-z]*") String headerValue
但是请注意,如果标头值无效,则结果为500.检查this question,以了解在这种情况下如何也获得正确的状态代码(即400).
标签:validation,bean-validation,spring,spring-mvc 来源: https://codeday.me/bug/20191024/1919978.html