Skip to content
Snippets Groups Projects
Commit acdb8aa2 authored by Xiangliang Meng's avatar Xiangliang Meng
Browse files

Refactor AuthorizationFilter::hasAnyPermission to avoid always returning true

parent c0a5e134
No related branches found
No related tags found
1 merge request!257Refactor AuthorizationFilter::hasAnyPermission to avoid always returning true
Pipeline #136111 failed
...@@ -63,25 +63,23 @@ public class AuthorizationFilter { ...@@ -63,25 +63,23 @@ public class AuthorizationFilter {
if (Arrays.asList(requiredRoles).contains(Config.CRON) && requestInfoExt.isCronRequest()) { if (Arrays.asList(requiredRoles).contains(Config.CRON) && requestInfoExt.isCronRequest()) {
dpsHeaders.put(DpsHeaders.USER_EMAIL, Config.CRON); dpsHeaders.put(DpsHeaders.USER_EMAIL, Config.CRON);
requestInfoExt.setHeaders(dpsHeaders); requestInfoExt.setHeaders(dpsHeaders);
return true;
} else if (Arrays.asList(requiredRoles).contains(Config.PUBSUB)) { } else if (Arrays.asList(requiredRoles).contains(Config.PUBSUB)) {
String jwt = dpsHeaders.getAuthorization().substring(BEARER_PREFIX.length()); String jwt = dpsHeaders.getAuthorization().substring(BEARER_PREFIX.length());
if (!this.validator.isValidPublisherServiceAccount(jwt)) { if (!this.validator.isValidPublisherServiceAccount(jwt)) {
if (!this.authorizeWithEntitlements(requiredRoles)) { this.authorizeWithEntitlements(requiredRoles);
throw new AppException(401, "Invalid User Identity", "this user is not authorized for this operation"); } else {
} return false;
} }
return true;
} else { } else {
return authorizeWithEntitlements(requiredRoles); authorizeWithEntitlements(requiredRoles);
} }
return true;
} }
private boolean authorizeWithEntitlements(String... requiredRoles) { private void authorizeWithEntitlements(String... requiredRoles) {
AuthorizationResponse authorizationResponse = authService.authorizeAny(requestInfoExt.getHeaders(), requiredRoles);
DpsHeaders dpsHeaders = requestInfoExt.getHeaders(); DpsHeaders dpsHeaders = requestInfoExt.getHeaders();
AuthorizationResponse authorizationResponse = authService.authorizeAny(dpsHeaders, requiredRoles);
dpsHeaders.put(DpsHeaders.USER_EMAIL, authorizationResponse.getUser()); dpsHeaders.put(DpsHeaders.USER_EMAIL, authorizationResponse.getUser());
requestInfoExt.setHeaders(dpsHeaders); requestInfoExt.setHeaders(dpsHeaders);
return true;
} }
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment