1 回答

TA貢獻1831條經(jīng)驗 獲得超10個贊
根據(jù)@dur 評論,我將代碼更改為使用 SecurityContextHolder 并獲取當(dāng)前線程上下文授權(quán)。
我現(xiàn)在的組件:
@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 上設(shè)置的?,F(xiàn)在我沒有問題。
添加回答
舉報