我正在尝试在由 Spring Security 保护的 Spring 中创建新的 POST 端点。端点正在工作。如果我提供正确的数据和凭据,服务器会处理请求并返回 200。如果我提供的凭据不正确,我会得到 405,我预计会得到 401。
我还尝试将控制器的请求方法从 POST 更改为 GET,并将请求从 POST 更改为 GET,并且成功了!对于错误的凭据,a 收到 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);
}
}
HTTP 请求(邮递员)
POST /api/v1/test HTTP/1.1
Host: localhost:8080
Content-Type: application/json
Authorization: Basic bWFudGfmZjptYW50YQ==
User-Agent: PostmanRuntime/7.15.2
Accept: */*
Host: localhost:8080
{
"something": "data",
"somethingelse": "data"
}
HTTP 响应(邮递员)
Status 405
WWW-Authenticate: Basic realm="Spring Security Application"
Allow: GET
我使用 Spring Security 3.2.10-RELEASE。我尝试启用 Spring Security 日志,但我失败了。
杨__羊羊
BIG阳
相关分类