From 20220691127dd8f7be610906fd82525c1c91ab43 Mon Sep 17 00:00:00 2001 From: sahusanket Date: Wed, 23 Oct 2024 18:05:07 +0530 Subject: [PATCH] Removing AuditLogPublisherService references --- .../guice/AppFabricServiceRuntimeModule.java | 3 - .../preview/DefaultPreviewRunnerManager.java | 8 -- .../AuditLogPublisherService.java | 41 --------- .../environment/k8s/AppFabricServiceMain.java | 5 -- .../DefaultAuditLogPublisherService.java | 86 ------------------- 5 files changed, 143 deletions(-) delete mode 100644 cdap-common/src/main/java/io/cdap/cdap/api/auditlogging/AuditLogPublisherService.java delete mode 100644 cdap-security/src/main/java/io/cdap/cdap/security/auth/service/DefaultAuditLogPublisherService.java diff --git a/cdap-app-fabric/src/main/java/io/cdap/cdap/app/guice/AppFabricServiceRuntimeModule.java b/cdap-app-fabric/src/main/java/io/cdap/cdap/app/guice/AppFabricServiceRuntimeModule.java index 61dba439b3f6..972c11d68b6b 100644 --- a/cdap-app-fabric/src/main/java/io/cdap/cdap/app/guice/AppFabricServiceRuntimeModule.java +++ b/cdap-app-fabric/src/main/java/io/cdap/cdap/app/guice/AppFabricServiceRuntimeModule.java @@ -34,7 +34,6 @@ import com.google.inject.name.Named; import com.google.inject.name.Names; import com.google.inject.util.Modules; -import io.cdap.cdap.api.auditlogging.AuditLogPublisherService; import io.cdap.cdap.api.feature.FeatureFlagsProvider; import io.cdap.cdap.app.deploy.Configurator; import io.cdap.cdap.app.deploy.Manager; @@ -153,7 +152,6 @@ import io.cdap.cdap.scheduler.CoreSchedulerService; import io.cdap.cdap.scheduler.Scheduler; import io.cdap.cdap.securestore.spi.SecretStore; -import io.cdap.cdap.security.auth.service.DefaultAuditLogPublisherService; import io.cdap.cdap.security.encryption.guice.DataStorageAeadEncryptionModule; import io.cdap.cdap.security.impersonation.DefaultOwnerAdmin; import io.cdap.cdap.security.impersonation.DefaultUGIProvider; @@ -435,7 +433,6 @@ protected void configure() { bind(EventSubscriberManager.class).in(Scopes.SINGLETON); bind(EventWriterProvider.class).to(EventWriterExtensionProvider.class); bind(MetricsProvider.class).to(SparkProgramStatusMetricsProvider.class); - bind(AuditLogPublisherService.class).to(DefaultAuditLogPublisherService.class); Multibinder handlerBinder = Multibinder.newSetBinder( binder(), HttpHandler.class, Names.named(Constants.AppFabric.HANDLERS_BINDING)); diff --git a/cdap-app-fabric/src/main/java/io/cdap/cdap/app/preview/DefaultPreviewRunnerManager.java b/cdap-app-fabric/src/main/java/io/cdap/cdap/app/preview/DefaultPreviewRunnerManager.java index 4cc8a80326ee..d30b83c195b0 100644 --- a/cdap-app-fabric/src/main/java/io/cdap/cdap/app/preview/DefaultPreviewRunnerManager.java +++ b/cdap-app-fabric/src/main/java/io/cdap/cdap/app/preview/DefaultPreviewRunnerManager.java @@ -27,7 +27,6 @@ import com.google.inject.Scopes; import com.google.inject.name.Named; import com.google.inject.util.Modules; -import io.cdap.cdap.api.auditlogging.AuditLogPublisherService; import io.cdap.cdap.api.security.store.SecureStore; import io.cdap.cdap.app.guice.ProgramRunnerRuntimeModule; import io.cdap.cdap.common.NotFoundException; @@ -56,7 +55,6 @@ import io.cdap.cdap.metrics.guice.MetricsClientRuntimeModule; import io.cdap.cdap.proto.id.ApplicationId; import io.cdap.cdap.security.auth.context.AuthenticationContextModules; -import io.cdap.cdap.security.auth.service.DefaultAuditLogPublisherService; import io.cdap.cdap.security.guice.CoreSecurityRuntimeModule; import io.cdap.cdap.security.guice.preview.PreviewSecureStoreModule; import java.net.InetAddress; @@ -205,12 +203,6 @@ protected void configure() { bind(MetadataServiceClient.class).to(NoOpMetadataServiceClient.class); } }), - new AbstractModule() { - @Override - protected void configure() { - bind(AuditLogPublisherService.class).to(DefaultAuditLogPublisherService.class).in(Scopes.SINGLETON); - } - }, new ProvisionerModule(), new AbstractModule() { @Override diff --git a/cdap-common/src/main/java/io/cdap/cdap/api/auditlogging/AuditLogPublisherService.java b/cdap-common/src/main/java/io/cdap/cdap/api/auditlogging/AuditLogPublisherService.java deleted file mode 100644 index d7b94f567dbe..000000000000 --- a/cdap-common/src/main/java/io/cdap/cdap/api/auditlogging/AuditLogPublisherService.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright © 2024 Cask Data, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ - -package io.cdap.cdap.api.auditlogging; - - -import com.google.common.util.concurrent.Service; -import io.cdap.cdap.security.spi.authorization.AuditLogContext; - -import java.io.IOException; -import java.util.Queue; - - -/** - * Service to batch and publish audit log to external auth service. - */ -public interface AuditLogPublisherService extends Service { - - /** - * pushes the log entry to respective external service - */ - void publish() throws IOException; - - /** - * add to service's pending list for publishing - */ - void addAuditContexts(Queue auditLogContextQueue); -} \ No newline at end of file diff --git a/cdap-master/src/main/java/io/cdap/cdap/master/environment/k8s/AppFabricServiceMain.java b/cdap-master/src/main/java/io/cdap/cdap/master/environment/k8s/AppFabricServiceMain.java index 94ec2a0ce575..1e5fb4eef6a8 100644 --- a/cdap-master/src/main/java/io/cdap/cdap/master/environment/k8s/AppFabricServiceMain.java +++ b/cdap-master/src/main/java/io/cdap/cdap/master/environment/k8s/AppFabricServiceMain.java @@ -24,7 +24,6 @@ import com.google.inject.Module; import com.google.inject.Scopes; import com.google.inject.util.Modules; -import io.cdap.cdap.api.auditlogging.AuditLogPublisherService; import io.cdap.cdap.app.guice.AppFabricServiceRuntimeModule; import io.cdap.cdap.app.guice.AuthorizationModule; import io.cdap.cdap.app.guice.MonitorHandlerModule; @@ -61,7 +60,6 @@ import io.cdap.cdap.operations.OperationalStatsService; import io.cdap.cdap.operations.guice.OperationalStatsModule; import io.cdap.cdap.proto.id.NamespaceId; -import io.cdap.cdap.security.auth.service.DefaultAuditLogPublisherService; import io.cdap.cdap.security.authorization.AccessControllerInstantiator; import io.cdap.cdap.security.authorization.AuthorizationEnforcementModule; import io.cdap.cdap.security.guice.SecureStoreServerModule; @@ -125,7 +123,6 @@ protected void configure() { // TODO (CDAP-14677): find a better way to inject metadata publisher bind(MetadataPublisher.class).to(MessagingMetadataPublisher.class); bind(MetadataServiceClient.class).to(DefaultMetadataServiceClient.class); - bind(AuditLogPublisherService.class).to(DefaultAuditLogPublisherService.class); } } ); @@ -161,8 +158,6 @@ protected void addServices(Injector injector, List services, () -> injector.getInstance(NamespaceInitializerService.class), RetryStrategies.exponentialDelay(200, 5000, TimeUnit.MILLISECONDS))); - services.add(injector.getInstance(AuditLogPublisherService.class)); - if (cConf.getBoolean(Constants.TaskWorker.POOL_ENABLE)) { services.add(injector.getInstance(TaskWorkerServiceLauncher.class)); } diff --git a/cdap-security/src/main/java/io/cdap/cdap/security/auth/service/DefaultAuditLogPublisherService.java b/cdap-security/src/main/java/io/cdap/cdap/security/auth/service/DefaultAuditLogPublisherService.java deleted file mode 100644 index f49cd3f1684b..000000000000 --- a/cdap-security/src/main/java/io/cdap/cdap/security/auth/service/DefaultAuditLogPublisherService.java +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Copyright © 2024 Cask Data, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ - -package io.cdap.cdap.security.auth.service; - -import com.google.inject.Inject; -import com.google.inject.Singleton; -import io.cdap.cdap.api.auditlogging.AuditLogPublisherService; -import io.cdap.cdap.common.conf.CConfiguration; -import io.cdap.cdap.common.conf.Constants; -import io.cdap.cdap.common.service.AbstractRetryableScheduledService; -import io.cdap.cdap.common.service.RetryStrategies; -import io.cdap.cdap.security.authorization.AccessControllerInstantiator; -import io.cdap.cdap.security.spi.authorization.AuditLogContext; -import io.cdap.cdap.security.spi.authorization.AuditLoggerSpi; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.io.IOException; -import java.util.Queue; -import java.util.concurrent.LinkedBlockingDeque; -import java.util.concurrent.TimeUnit; - -/** - * The default implementation of {@link AuditLogPublisherService} , which runs in the app-fabric and receives - * a collection of {@link AuditLogContext}s . This class is responsible to store them in a queue and timely publish - * them to an SPI. - */ -@Singleton -public class DefaultAuditLogPublisherService extends AbstractRetryableScheduledService - implements AuditLogPublisherService { - - private static final Logger LOG = LoggerFactory.getLogger(DefaultAuditLogPublisherService.class); - private final int publishIntervalSeconds; - private final AccessControllerInstantiator accessControllerInstantiator; - - Queue auditLogContextQueue = new LinkedBlockingDeque<>(); - - @Inject - public DefaultAuditLogPublisherService(CConfiguration conf, - AccessControllerInstantiator accessControllerInstantiator) { - super(RetryStrategies.exponentialDelay(10, 200, TimeUnit.MILLISECONDS)); - this.accessControllerInstantiator = accessControllerInstantiator; - this.publishIntervalSeconds = conf.getInt(Constants.AuditLogging.AUDIT_LOG_PUBLISH_INTERVAL_SECONDS); - LOG.warn("SANKET_TEST : 1 : " + publishIntervalSeconds); - } - - /** - * Runs the task in one scheduled iteration. - * - * @return the number of milliseconds to delay until the next call to this method - * @throws Exception if the task failed - */ - @Override - protected long runTask() throws Exception { - publish(); - return publishIntervalSeconds; - } - - @Override - public synchronized void publish() throws IOException { - AuditLoggerSpi.PublishStatus publishStatus = this.accessControllerInstantiator.get().publish(auditLogContextQueue); - if (!publishStatus.equals(AuditLoggerSpi.PublishStatus.PUBLISHED)){ - throw new IOException(); - } - auditLogContextQueue.clear(); - } - - @Override - public void addAuditContexts(Queue q) { - auditLogContextQueue.addAll(q); - } -} \ No newline at end of file