【发布时间】:2017-07-25 20:48:08
【问题描述】:
我有一个用 Spring 编写的带有 Spring Security 的 REST API 和带有 Web Started 包的 Spring Boot。我的一些方法检查 JWT 令牌:
@RequestMapping(value = "/list",
method = GET,
produces = APPLICATION_JSON_VALUE)
public HttpEntity<List<Item>> list(@RequestHeader(name = TOKEN_HEADER) String token) {
// validate token
// do something
}
是否可以将令牌检查移至将通过@PreAuthorize 注释调用的方法?比如:
@RequestMapping(value = "/list",
method = GET,
produces = APPLICATION_JSON_VALUE)
@PreAuthorize("myMethod(headers)")
public HttpEntity<List<Item>> list(@RequestHeader(name = TOKEN_HEADER) String token) {
// do something
}
void myMethod(HttpHeaders headers) {
// validate token
}
令牌包含有关特定用户可以访问的资源的一些信息。如果令牌不包含用户请求的资源或底层数据层中的数据表明用户无权访问它,我将返回 HTTP 403。
【问题讨论】:
标签: java spring rest spring-mvc spring-security