1 回答

TA貢獻1831條經驗 獲得超10個贊
根據@dur 評論,我將代碼更改為使用 SecurityContextHolder 并獲取當前線程上下文授權。
我現在的組件:
@Component
public class AuthRequestInfo {
private AuthorizationService authorizationService;
public AuthRequestInfo(AuthorizationService authorizationService) {
this.authorizationService = authorizationService;
}
public Authorization getAuthorization(){
Claims claims = (Claims)SecurityContextHolder.getContext().getAuthentication().getPrincipal();
String key = claims.get(KEY_CLAIM).toString();
return this.authorizationService.findByExampleOptional(Authorization.builder().key(key).build())
.orElseThrow(new UnauthorizedException(INVALID_TWOFACE_AUTHORIZATION_HEADER));
}
}
SecurityContextHolder 身份驗證是在 GenericFilterBean 上設置的?,F在我沒有問題。
添加回答
舉報