我有一个用 springboot 和 spring security 构建的rest-api,我的问题是: 我有一个 AuthenticationController ,它将有一个注册和登录方法,我想知道在哪里应用我的验证到将作为此请求的结果创建的实体,我应该将它应用到 User 类还是注册请求上?如果是用户,在这种情况下如何应用?
我使用 jakarta 验证注释在 User 类中添加了验证
我将使用 jakarta 验证注释输入请求,并使用 @Validated 注释控制器,使用 @Valid 注释参数。请参阅此处参考:https://docs.spring.io/spring-framework/reference/web/webmvc/mvc-controller/ann-validation.html
此外,您可以在代码中的任何位置使用 Bean 验证,例如在服务类中。但是,如果您的输入已经经过验证,那么在我的观点中的这个简单情况下,第二次调用验证将毫无意义。 https://docs.spring.io/spring-framework/reference/core/validation/beanvalidation.html
您可以在 DTO 中添加验证,然后在端点中触发验证:
public class RegisterRequestDTO {
@NotBlank(message = "Username is required")
@Size(min = 4, max = 20, message = "Username must be between 4 and 20 characters")
private String username;
@NotBlank(message = "Password is required")
@Size(min = 6, message = "Password must be at least 6 characters")
private String password;
@Email(message = "Invalid email address")
private String email;
// Getters and setters
}
您的控制器:
@PostMapping("/register")
public ResponseEntity<?> register(@Valid @RequestBody RegisterRequestDTO
registerRequest) {
// Process registration
}