public static void authorizeOperationIfProjectService(Service requestorService, Operation op) { if (requestorService instanceof ProjectService || requestorService instanceof ProjectFactoryService) { requestorService.setAuthorizationContext(op, requestorService.getSystemAuthorizationContext()); } }
private static DeferredResult<UserState> getUserState(Service requestorService, String principalId) { Operation getUserStateOp = Operation.createGet(requestorService, AuthUtil.buildUserServicePathFromPrincipalId(encode(principalId))); requestorService.setAuthorizationContext(getUserStateOp, requestorService.getSystemAuthorizationContext()); return requestorService.sendWithDeferredResult(getUserStateOp, UserState.class) .exceptionally((ex) -> { if (ex.getCause() instanceof ServiceNotFoundException) { return new UserState(); } return null; }); }
Operation get = Operation.createGet(AuthUtils.buildAuthProviderHostUri(context.authContextService.getHost(), resourceGroupLink)).setReferer(context.authContextService.getUri()); context.authContextService.setAuthorizationContext(get, context.authContextService.getSystemAuthorizationContext()); gets.add(get);
Operation get = Operation.createGet(AuthUtils .buildAuthProviderHostUri(context.authContextService.getHost(), userGroupLink)).setReferer(context.authContextService.getUri()); context.authContextService.setAuthorizationContext(get, context.authContextService.getSystemAuthorizationContext()); gets.add(get);
@Override public DeferredResult<Principal> deletePrincipal(Operation op, String principalId) { assertNotNullOrEmpty(principalId, "principalId"); Operation delete = Operation.createDelete(service, UriUtils.buildUriPath(LocalPrincipalFactoryService.SELF_LINK, encode(principalId))); service.setAuthorizationContext(delete, service.getSystemAuthorizationContext()); return service.sendWithDeferredResult(delete, LocalPrincipalState.class) .thenApply((s) -> fromLocalPrincipalToPrincipal(s)); }
s.setAuthorizationContext(getOp, s.getSystemAuthorizationContext()); s.sendRequest(getOp);
@Override public DeferredResult<List<Principal>> getPrincipals(Operation op, String criteria) { String filterQuery = buildFilterBasedOnCriteria(criteria); URI uri = UriUtils.buildUri(service.getHost(), LocalPrincipalFactoryService.SELF_LINK); uri = UriUtils.extendUriWithQuery(uri, EXPAND_QUERY_KEY, Boolean.TRUE.toString()); uri = UriUtils.extendUriWithQuery(uri, FILTER_QUERY_KEY, filterQuery); Operation get = Operation.createGet(uri); service.setAuthorizationContext(get, service.getSystemAuthorizationContext()); return service.sendWithDeferredResult(get, ServiceDocumentQueryResult.class) .thenApply(q -> fromQueryResultToPrincipalList(q)) .thenCompose(principals -> { List<DeferredResult<Principal>> results = new ArrayList<>(); for (Principal p : principals) { results.add(getAllGroupsForPrincipal(op, p.id) .thenApply(groups -> { p.groups = groups; return p; })); } return DeferredResult.allOf(results); }); }
@Override public DeferredResult<Principal> createPrincipal(Operation op, Principal principal) { LocalPrincipalState stateToCreate = fromPrincipalToLocalPrincipal(principal); stateToCreate.documentSelfLink = encode(principal.id); Operation post = Operation.createPost(service, LocalPrincipalFactoryService.SELF_LINK) .addPragmaDirective(Operation.PRAGMA_DIRECTIVE_FORCE_INDEX_UPDATE) .setBody(stateToCreate); service.setAuthorizationContext(post, service.getSystemAuthorizationContext()); return service.sendWithDeferredResult(post, LocalPrincipalState.class) .thenApply((s) -> fromLocalPrincipalToPrincipal(s)); }
context.authContextService.getSystemAuthorizationContext()); context.authContextService.sendRequest(get);
@Override public DeferredResult<Principal> updatePrincipal(Operation op, Principal principal) { LocalPrincipalState stateToPatch = fromPrincipalToLocalPrincipal(principal); Operation patch = Operation.createPatch(service, UriUtils.buildUriPath(LocalPrincipalFactoryService.SELF_LINK, encode(stateToPatch.id))) .addPragmaDirective(Operation.PRAGMA_DIRECTIVE_FORCE_INDEX_UPDATE) .setBody(stateToPatch); service.setAuthorizationContext(patch, service.getSystemAuthorizationContext()); return service.sendWithDeferredResult(patch, LocalPrincipalState.class) .thenApply((s) -> fromLocalPrincipalToPrincipal(s)); }
context.authContextService.getSystemAuthorizationContext()); context.authContextService.sendRequest(get);
s.setAuthorizationContext(getOp, s.getSystemAuthorizationContext()); s.sendRequest(getOp);
}); context.authContextService.setAuthorizationContext(get, context.authContextService.getSystemAuthorizationContext()); context.authContextService.sendRequest(get);
context.authContextService.getSystemAuthorizationContext()); context.authContextService.sendRequest(post);
@Override public DeferredResult<Principal> getPrincipal(Operation op, String principalId) { assertNotNullOrEmpty(principalId, "principalId"); Operation get = Operation.createGet(service, UriUtils.buildUriPath(LocalPrincipalFactoryService.SELF_LINK, encode(principalId))); service.setAuthorizationContext(get, service.getSystemAuthorizationContext()); return service.sendWithDeferredResult(get, LocalPrincipalState.class) .thenApply(s -> fromLocalPrincipalToPrincipal(s)) .thenApply(p -> new Pair<Principal, Set<String>>(p, null)) .thenCompose(pair -> getAllGroupsForPrincipal(op, principalId) .thenApply(groups -> new Pair<>(pair.left, groups))) .thenApply(pair -> { pair.left.groups = pair.right; return pair.left; }); }
s.setAuthorizationContext(postOp, s.getSystemAuthorizationContext()); s.sendRequest(postOp); });
s.setAuthorizationContext(postClearCacheRequest, s.getSystemAuthorizationContext()); s.sendRequest(postClearCacheRequest); });
context.authContextService.getSystemAuthorizationContext()); context.authContextService.sendRequest(postOp);
}); s.setAuthorizationContext(postOp, s.getSystemAuthorizationContext()); s.sendRequest(postOp); });
op.complete(); }); s.setAuthorizationContext(parentOp, s.getSystemAuthorizationContext()); s.sendRequest(parentOp); });