refactor: move audit log config under statReporter.plugin

Co-Authored-By: Codex GPT-5 <noreply@openai.com>
Signed-off-by: fishtailfu <fishtailfu@tencent.com>
pull/1812/head
Yuwei Fu 4 weeks ago committed by fishtailfu
parent 5e7c7efc1b
commit 8334718613

@ -251,6 +251,16 @@
<groupId>com.tencent.polaris</groupId> <groupId>com.tencent.polaris</groupId>
<version>${polaris.version}</version> <version>${polaris.version}</version>
</dependency> </dependency>
<dependency>
<groupId>com.tencent.polaris</groupId>
<artifactId>stat-audit</artifactId>
<version>${polaris.version}</version>
</dependency>
<dependency>
<groupId>com.tencent.polaris</groupId>
<artifactId>polaris-config</artifactId>
<version>${polaris.version}</version>
</dependency>
<dependency> <dependency>
<artifactId>polaris-threadlocal</artifactId> <artifactId>polaris-threadlocal</artifactId>

@ -21,6 +21,15 @@
</dependency> </dependency>
<!-- Spring Cloud Tencent dependencies end --> <!-- Spring Cloud Tencent dependencies end -->
<dependency>
<groupId>com.tencent.polaris</groupId>
<artifactId>polaris-config</artifactId>
</dependency>
<dependency>
<groupId>com.tencent.polaris</groupId>
<artifactId>stat-audit</artifactId>
</dependency>
<dependency> <dependency>
<groupId>org.springframework</groupId> <groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId> <artifactId>spring-web</artifactId>

@ -19,8 +19,10 @@ package com.tencent.cloud.rpc.enhancement.audit.config;
import com.tencent.cloud.common.constant.OrderConstant; import com.tencent.cloud.common.constant.OrderConstant;
import com.tencent.cloud.polaris.context.PolarisConfigModifier; 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.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. * Config modifier for Polaris service call audit logging.
@ -37,9 +39,12 @@ public class AuditLogConfigModifier implements PolarisConfigModifier {
@Override @Override
public void modify(ConfigurationImpl configuration) { 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.setEnable(auditLogProperties.isEnabled());
auditLogConfig.setFormat(auditLogProperties.getFormat()); auditLogConfig.setFormat(auditLogProperties.getFormat());
statReporterConfig.setPluginConfig(StatReporterConfig.DEFAULT_REPORTER_AUDIT_LOG, auditLogConfig);
} }
@Override @Override

@ -20,10 +20,11 @@ package com.tencent.cloud.rpc.enhancement.audit.config;
import com.tencent.cloud.common.constant.OrderConstant; import com.tencent.cloud.common.constant.OrderConstant;
import com.tencent.cloud.polaris.context.PolarisSDKContextManager; import com.tencent.cloud.polaris.context.PolarisSDKContextManager;
import com.tencent.cloud.polaris.context.config.PolarisContextAutoConfiguration; 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.ConfigurationImpl;
import com.tencent.polaris.factory.config.consumer.AuditLogConfigImpl; import com.tencent.polaris.factory.config.global.GlobalConfigImpl;
import com.tencent.polaris.factory.config.consumer.ConsumerConfigImpl; 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.BeforeEach;
import org.junit.jupiter.api.Test; 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.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.mock; import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
/** /**
@ -61,16 +61,20 @@ public class AuditLogConfigModifierTest {
properties.setEnabled(true); properties.setEnabled(true);
properties.setFormat("json"); properties.setFormat("json");
ConfigurationImpl configuration = mock(ConfigurationImpl.class); ConfigurationImpl configuration = mock(ConfigurationImpl.class);
ConsumerConfigImpl consumerConfig = mock(ConsumerConfigImpl.class); GlobalConfigImpl globalConfig = mock(GlobalConfigImpl.class);
AuditLogConfigImpl auditLogConfig = mock(AuditLogConfigImpl.class); StatReporterConfigImpl statReporterConfig = mock(StatReporterConfigImpl.class);
when(configuration.getConsumer()).thenReturn(consumerConfig); AuditLogConfig auditLogConfig = new AuditLogConfig();
when(consumerConfig.getAuditLog()).thenReturn(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); AuditLogConfigModifier modifier = new AuditLogConfigModifier(properties);
modifier.modify(configuration); modifier.modify(configuration);
verify(auditLogConfig).setEnable(true); assertThat(auditLogConfig.isEnable()).isTrue();
verify(auditLogConfig).setFormat("json"); assertThat(auditLogConfig.getFormat()).isEqualTo("json");
assertThat(modifier.getOrder()).isEqualTo(OrderConstant.Modifier.AUDIT_LOG_ORDER); assertThat(modifier.getOrder()).isEqualTo(OrderConstant.Modifier.AUDIT_LOG_ORDER);
} }
@ -81,7 +85,10 @@ public class AuditLogConfigModifierTest {
.withPropertyValues("spring.cloud.polaris.audit-log.format=json") .withPropertyValues("spring.cloud.polaris.audit-log.format=json")
.run(context -> { .run(context -> {
PolarisSDKContextManager contextManager = context.getBean(PolarisSDKContextManager.class); 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.isEnable()).isTrue();
assertThat(auditLogConfig.getFormat()).isEqualTo("json"); assertThat(auditLogConfig.getFormat()).isEqualTo("json");
}); });
@ -91,7 +98,10 @@ public class AuditLogConfigModifierTest {
void testAuditLogDisabledByDefault() { void testAuditLogDisabledByDefault() {
contextRunner.run(context -> { contextRunner.run(context -> {
PolarisSDKContextManager contextManager = context.getBean(PolarisSDKContextManager.class); 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.isEnable()).isFalse();
assertThat(auditLogConfig.getFormat()).isEqualTo("json"); assertThat(auditLogConfig.getFormat()).isEqualTo("json");
}); });

Loading…
Cancel
Save