其他分享
首页 > 其他分享> > 使用Spring验证框架验证请求标头

使用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