我有一個使用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 –