我有一个使用Spring Security和Spring Boot使用Web Started包编写的REST API。我有几个方法检查一个JWT令牌:我可以使用Spring Security @PreAuthorize检查HTTP标头吗?
@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.
复制到此? http://stackoverflow.com/questions/26747452/how-to-use-custom-expressions-in-spring-security-preauthorize-postauthorize-an –