Java Spring boot中的自定义验证器
有没有一种方法可以实现@RequestHeader的自定义验证器并从控制器中移动if-else语句Java Spring boot中的自定义验证器,java,spring-boot,Java,Spring Boot,有没有一种方法可以实现@RequestHeader的自定义验证器并从控制器中移动if-else语句 @PostMapping(path_to_endpoint) public Map<String, Object> changePassword(@Parameter(hidden = true) @RequestHeader String userId, @RequestHeader String
@PostMapping(path_to_endpoint)
public Map<String, Object> changePassword(@Parameter(hidden = true) @RequestHeader String userId,
@RequestHeader String old_password,
@RequestHeader String new_password,
@RequestHeader String confirm_password,
HttpServletResponse http_response) {
final Map<String, Object> response = new HashMap<>();
if (new_password.equals(confirm_password)) {
//do some login here
} else {
httpResponse.setStatus(SC_BAD_REQUEST);
response.put(STATUS, 400);
response.put(MESSAGE, "Passwords do not match!!");
}
return response;
}
@PostMapping(路径到端点)
公共映射changePassword(@Parameter(hidden=true)@RequestHeader字符串userId,
@RequestHeader字符串旧密码,
@RequestHeader字符串新密码,
@RequestHeader字符串确认密码,
HttpServletResponse(http\U响应){
最终映射响应=新HashMap();
if(新密码等于(确认密码)){
//在这里登录
}否则{
httpResponse.setStatus(SC_BAD_请求);
答复.付诸表决(状态,400);
response.put(消息“密码不匹配!!”);
}
返回响应;
}
请注意,将这些作为请求头发送是非常奇怪的;更常见的是可以收集到@modeldattribute
中的表单参数,或者是在代码库中找到的JSON@RequestBody
@chrylis-cautiouslyoptimistic。现在,我正在尝试重构它。