diff --git a/spring-cloud-tencent-dependencies/pom.xml b/spring-cloud-tencent-dependencies/pom.xml index c7bd4b53e..dc82d918d 100644 --- a/spring-cloud-tencent-dependencies/pom.xml +++ b/spring-cloud-tencent-dependencies/pom.xml @@ -251,6 +251,16 @@ com.tencent.polaris ${polaris.version} + + com.tencent.polaris + stat-audit + ${polaris.version} + + + com.tencent.polaris + polaris-config + ${polaris.version} + polaris-threadlocal diff --git a/spring-cloud-tencent-polaris-context/pom.xml b/spring-cloud-tencent-polaris-context/pom.xml index ce2c0a6d4..bfce23094 100644 --- a/spring-cloud-tencent-polaris-context/pom.xml +++ b/spring-cloud-tencent-polaris-context/pom.xml @@ -21,6 +21,15 @@ + + com.tencent.polaris + polaris-config + + + com.tencent.polaris + stat-audit + + org.springframework spring-web diff --git a/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/audit/config/AuditLogConfigModifier.java b/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/audit/config/AuditLogConfigModifier.java index b48e5f0a7..abfb85fa5 100644 --- a/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/audit/config/AuditLogConfigModifier.java +++ b/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/audit/config/AuditLogConfigModifier.java @@ -19,8 +19,10 @@ package com.tencent.cloud.rpc.enhancement.audit.config; import com.tencent.cloud.common.constant.OrderConstant; import com.tencent.cloud.polaris.context.PolarisConfigModifier; +import com.tencent.polaris.api.config.global.StatReporterConfig; import com.tencent.polaris.factory.config.ConfigurationImpl; -import com.tencent.polaris.factory.config.consumer.AuditLogConfigImpl; +import com.tencent.polaris.factory.config.global.StatReporterConfigImpl; +import com.tencent.polaris.plugins.stat.audit.AuditLogConfig; /** * Config modifier for Polaris service call audit logging. @@ -37,9 +39,12 @@ public class AuditLogConfigModifier implements PolarisConfigModifier { @Override public void modify(ConfigurationImpl configuration) { - AuditLogConfigImpl auditLogConfig = configuration.getConsumer().getAuditLog(); + StatReporterConfigImpl statReporterConfig = configuration.getGlobal().getStatReporter(); + AuditLogConfig auditLogConfig = statReporterConfig.getPluginConfig( + StatReporterConfig.DEFAULT_REPORTER_AUDIT_LOG, AuditLogConfig.class); auditLogConfig.setEnable(auditLogProperties.isEnabled()); auditLogConfig.setFormat(auditLogProperties.getFormat()); + statReporterConfig.setPluginConfig(StatReporterConfig.DEFAULT_REPORTER_AUDIT_LOG, auditLogConfig); } @Override diff --git a/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/audit/config/AuditLogConfigModifierTest.java b/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/audit/config/AuditLogConfigModifierTest.java index 1ca41d036..4d9b83bf5 100644 --- a/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/audit/config/AuditLogConfigModifierTest.java +++ b/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/audit/config/AuditLogConfigModifierTest.java @@ -20,10 +20,11 @@ package com.tencent.cloud.rpc.enhancement.audit.config; import com.tencent.cloud.common.constant.OrderConstant; import com.tencent.cloud.polaris.context.PolarisSDKContextManager; import com.tencent.cloud.polaris.context.config.PolarisContextAutoConfiguration; -import com.tencent.polaris.api.config.consumer.AuditLogConfig; +import com.tencent.polaris.api.config.global.StatReporterConfig; import com.tencent.polaris.factory.config.ConfigurationImpl; -import com.tencent.polaris.factory.config.consumer.AuditLogConfigImpl; -import com.tencent.polaris.factory.config.consumer.ConsumerConfigImpl; +import com.tencent.polaris.factory.config.global.GlobalConfigImpl; +import com.tencent.polaris.factory.config.global.StatReporterConfigImpl; +import com.tencent.polaris.plugins.stat.audit.AuditLogConfig; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -32,7 +33,6 @@ import org.springframework.boot.test.context.runner.ApplicationContextRunner; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; /** @@ -61,16 +61,20 @@ public class AuditLogConfigModifierTest { properties.setEnabled(true); properties.setFormat("json"); ConfigurationImpl configuration = mock(ConfigurationImpl.class); - ConsumerConfigImpl consumerConfig = mock(ConsumerConfigImpl.class); - AuditLogConfigImpl auditLogConfig = mock(AuditLogConfigImpl.class); - when(configuration.getConsumer()).thenReturn(consumerConfig); - when(consumerConfig.getAuditLog()).thenReturn(auditLogConfig); + GlobalConfigImpl globalConfig = mock(GlobalConfigImpl.class); + StatReporterConfigImpl statReporterConfig = mock(StatReporterConfigImpl.class); + AuditLogConfig auditLogConfig = new AuditLogConfig(); + when(configuration.getGlobal()).thenReturn(globalConfig); + when(globalConfig.getStatReporter()).thenReturn(statReporterConfig); + when(statReporterConfig.getPluginConfig( + StatReporterConfig.DEFAULT_REPORTER_AUDIT_LOG, AuditLogConfig.class)) + .thenReturn(auditLogConfig); AuditLogConfigModifier modifier = new AuditLogConfigModifier(properties); modifier.modify(configuration); - verify(auditLogConfig).setEnable(true); - verify(auditLogConfig).setFormat("json"); + assertThat(auditLogConfig.isEnable()).isTrue(); + assertThat(auditLogConfig.getFormat()).isEqualTo("json"); assertThat(modifier.getOrder()).isEqualTo(OrderConstant.Modifier.AUDIT_LOG_ORDER); } @@ -81,7 +85,10 @@ public class AuditLogConfigModifierTest { .withPropertyValues("spring.cloud.polaris.audit-log.format=json") .run(context -> { PolarisSDKContextManager contextManager = context.getBean(PolarisSDKContextManager.class); - AuditLogConfig auditLogConfig = contextManager.getSDKContext().getConfig().getConsumer().getAuditLog(); + StatReporterConfig statReporter = contextManager.getSDKContext().getConfig() + .getGlobal().getStatReporter(); + AuditLogConfig auditLogConfig = statReporter.getPluginConfig( + StatReporterConfig.DEFAULT_REPORTER_AUDIT_LOG, AuditLogConfig.class); assertThat(auditLogConfig.isEnable()).isTrue(); assertThat(auditLogConfig.getFormat()).isEqualTo("json"); }); @@ -91,7 +98,10 @@ public class AuditLogConfigModifierTest { void testAuditLogDisabledByDefault() { contextRunner.run(context -> { PolarisSDKContextManager contextManager = context.getBean(PolarisSDKContextManager.class); - AuditLogConfig auditLogConfig = contextManager.getSDKContext().getConfig().getConsumer().getAuditLog(); + StatReporterConfig statReporter = contextManager.getSDKContext().getConfig() + .getGlobal().getStatReporter(); + AuditLogConfig auditLogConfig = statReporter.getPluginConfig( + StatReporterConfig.DEFAULT_REPORTER_AUDIT_LOG, AuditLogConfig.class); assertThat(auditLogConfig.isEnable()).isFalse(); assertThat(auditLogConfig.getFormat()).isEqualTo("json"); });