验证传入请求的大小

问题描述 投票:0回答:1

我有一个以下控制器类,它接受请求并处理它。它与下面的代码配合得很好。

@RestController
@RequestMapping("/user/id")
public class UserController {

  private final UserName userName;

  @Autowired
  public UserController(final UserName userName) {
    this.userName = Objects.requireNonNull(userName, "Not found");
  }

  @JsonRequestMapping(method = POST)
  public ResponseEntity<UserResponse> validate(
      @RequestBody UserRequest UserRequest,
      @RequestHeader(required = false) String validation) {

…
  }

但是,我想添加一个验证来检查请求大小,以避免发出超大的恶意请求,并在大小超过特定值时拒绝请求。

尝试过

import javax.validation.constraints.Size;
…
@RequestBody(@Size(max = 200)) UserRequest UserRequest

但这给了我

Cannot find method 'value'
,我不知道为什么。这是实现我想要的验证的正确方法吗?如果是,我上面缺少什么?

java spring-boot spring-mvc
1个回答
0
投票

验证对象@Size的问题如果想使用验证,则需要使用@Valid进行注释

@RequestBody(@Valid @RequestBody UserRequest UserRequest)

//in object

@Size(max=200)
private String fieldname;

或者你可以一起去

@Valid @Size(max = 200) @RequestBody UserRequest userRequest)
© www.soinside.com 2019 - 2024. All rights reserved.