@Override protected void registerInterceptors(OperationInterceptorRegistry registry) { ProjectInterceptor.register(registry); }
private static DeferredResult<Void> setProjectLinkAsTenantLink(Service service, Operation op) { String projectLink = OperationUtil.extractProjectFromHeader(op); ResourceState state = extractResourceState(service, op); if (state != null) { handleResourceState(state, projectLink, op); return DeferredResult.completed(null); } MultiTenantDocument multiTenantDocument = extractMultiTenantState(service, op); if (multiTenantDocument != null) { handleMultiTenantState(multiTenantDocument, projectLink, op); return DeferredResult.completed(null); } ContainerHostSpec hostSpec = extractContainerHostSpec(op); if (hostSpec != null) { handleContainerHostSpec(hostSpec, projectLink, op); return DeferredResult.completed(null); } RegistryHostSpec registrySpec = extractRegistryHostSpec(op); if (registrySpec != null) { handleRegistryHostSpec(registrySpec, projectLink, op); } return DeferredResult.completed(null); }
private static boolean isCreatePKSClusterRequest(Operation op, SecurityContext sc, String projectLink) { ContainerHostSpec hostSpec = extractContainerHostSpec(op); boolean isCreatePKSClusterRequest = hostSpec != null && hostSpec.hostState != null && hostSpec.hostState.customProperties != null && hostSpec.hostState.customProperties .get(PKSConstants.PKS_ENDPOINT_PROP_NAME) != null; if (isCreatePKSClusterRequest) { if (projectLink == null && hostSpec.hostState.tenantLinks != null) { projectLink = hostSpec.hostState.tenantLinks.stream() .filter(tenantLink -> isProjectLink(tenantLink)) .findFirst().orElse(null); } return op.getAction() == Action.POST && isCreatePKSClusterRequest && isProjectAdminOrProjectMember(projectLink, sc); } return false; }
public static DeferredResult<Void> handleFactoryOp(Service service, Operation op) { if (op.getAction() != Action.POST) { return DeferredResult.completed(null); } if (op.getAuthorizationContext() != null && op.getAuthorizationContext().isSystemUser()) { return DeferredResult.completed(null); } return handleClusterServiceOp(service, op) .thenCompose(ignore -> setProjectLinkAsTenantLink(service, op)); }
public static DeferredResult<Void> handleServiceOp(Service service, Operation op) { if (op.getAction() == Action.GET) { return DeferredResult.completed(null); } if (op.getAuthorizationContext() != null && op.getAuthorizationContext().isSystemUser()) { return DeferredResult.completed(null); } return handleClusterServiceOp(service, op) .thenCompose(ignore -> setProjectLinkAsTenantLink(service, op)); }
@Override protected void registerInterceptors(OperationInterceptorRegistry registry) { super.registerInterceptors(registry); ProjectInterceptor.register(registry); }
/** * Registers service operation interceptors. */ protected void registerOperationInterceptors() { InUsePlacementZoneInterceptor.register(interceptors); SchedulerPlacementZoneInterceptor.register(interceptors); CompositeComponentInterceptor.register(interceptors); AuthCredentialsInterceptor.register(interceptors); UnauthorizedDeleteInterceptor.register(interceptors); ProjectInterceptor.register(interceptors); }