public static void authorizeOperationIfProjectService(Service requestorService, Operation op) { if (requestorService instanceof ProjectService || requestorService instanceof ProjectFactoryService) { requestorService.setAuthorizationContext(op, requestorService.getSystemAuthorizationContext()); } }
public static DeferredResult<Principal> getPrincipal(Service requestorService, Operation requestorOperation, String principalId) { Operation getOp = Operation.createGet(requestorService, UriUtils.buildUriPath(PrincipalService.SELF_LINK, encode(principalId))); requestorService.setAuthorizationContext(getOp, requestorOperation.getAuthorizationContext()); return requestorService.sendWithDeferredResult(getOp, Principal.class); }
protected Operation createAuthorizedOperation(AuthorizationContext authorizationContext) { Operation op = Operation.createGet(UriUtils.buildUri("http://localhost/foo/bar")); privilegedTestService.setAuthorizationContext(op, authorizationContext); return op; }
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; }); }
@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.setAuthorizationContext(get, 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.setAuthorizationContext(get, context.authContextService.getSystemAuthorizationContext()); context.authContextService.sendRequest(get);
s.setAuthorizationContext(getOp, s.getSystemAuthorizationContext()); s.sendRequest(getOp);
private void associateAuthorizationContext(Service service, Operation op, String token) { Claims claims = getClaims(); AuthorizationContext.Builder ab = AuthorizationContext.Builder.create(); ab.setClaims(claims); ab.setToken(token); ab.setPropagateToClient(true); // associate resulting authorization context with operation. service.setAuthorizationContext(op, ab.getResult()); }
private void associateAuthorizationContext(Service service, Operation op, String token) { Claims claims = getClaims(); AuthorizationContext.Builder ab = AuthorizationContext.Builder.create(); ab.setClaims(claims); ab.setToken(token); ab.setPropagateToClient(true); // associate resulting authorization context with operation. service.setAuthorizationContext(op, ab.getResult()); }
}); context.authContextService.setAuthorizationContext(get, context.authContextService.getSystemAuthorizationContext()); context.authContextService.sendRequest(get);
@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(postClearCacheRequest, s.getSystemAuthorizationContext()); s.sendRequest(postClearCacheRequest); });
}); s.setAuthorizationContext(postOp, s.getSystemAuthorizationContext()); s.sendRequest(postOp); });
}); context.authContextService.setAuthorizationContext(postOp, context.authContextService.getSystemAuthorizationContext()); context.authContextService.sendRequest(postOp);
op.complete(); }); s.setAuthorizationContext(parentOp, s.getSystemAuthorizationContext()); s.sendRequest(parentOp); });