java - 从请求正文的“用户名或电子邮件”字段中识别并验证用户名和电子邮件
问题描述
我有一个控制器,它应该验证一对username
/password
或email
/password
并在成功时返回一些令牌以响应。
Controller-Method
@PostMapping(value = {"/login"})
ResponseEntity<?> login(
HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse,
@Valid @RequestBody LoginParam loginParam) {
// Check if username/email exist and password is same, if yes, send token back in response
return ResponseEntity.ok().build();
}
LoginParam.Java
@Data
@NoArgsConstructor
@AllArgsConstructor
public class LoginParam {
@NotBlank(message = "username/email can't be empty")
@Email(message = "Invalid email") // how to check if it's an email or username ??
private String usernameOrEmail;
@NotBlank(message = "password can't be empty")
private String password;
}
如何确定提供的输入是username
oremail
并相应地执行验证?javax.validation
是否能够根据输入的语法自动执行此操作?
这里的限制是我们在登录提示中只有 2 个字段,username or email
并且password