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>
<version>${polaris.version}</version>
</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>
<artifactId>polaris-threadlocal</artifactId>

@ -21,6 +21,15 @@
</dependency>
<!-- 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>
<groupId>org.springframework</groupId>
<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.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

@ -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");
});

Loading…
Cancel
Save