我正在尝试在 Spring 中创建由 Spring Security 保护的新 POST 端点。端点正在工作。如果我提供正确的数据和凭据,服务器会处理该请求并返回 200。如果我提供不正确的凭据,我会收到 405,我预计会返回 401。
我发现了与我的问题类似的东西,但我认为这不是我的情况。同样的问题没有回应。
我还尝试将控制器的请求方法从 POST 更改为 GET,并将请求从 POST 更改为 GET,它成功了!如果凭据错误,则会收到 401;如果凭据正确,则会收到 200。
这是我的配置:
控制器
@Controller
@RequestMapping(value = "/api/v1")
@Secured(UserRoles.ROLE_USER)
public class ApiController {
@RequestMapping(value = "/test", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
@ResponseStatus(value = HttpStatus.OK)
@ResponseBody
public ResponseEntity<String> handleRequest(@RequestBody DataBody dataBody, Model model, Locale locale) {
try{
//do something
return new ResponseEntity<>("received", HttpStatus.OK);
} catch (SomeProblemException e) {
return new ResponseEntity<>(e.toString(), HttpStatus.BAD_REQUEST);
}
}
Run Code Online (Sandbox Code Playgroud)
安全上下文
<!-- In …Run Code Online (Sandbox Code Playgroud)