You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by zh...@apache.org on 2022/06/30 06:24:40 UTC

[shardingsphere] branch master updated: modify auditStrategies to auditStrategy (#18720)

This is an automated email from the ASF dual-hosted git repository.

zhangliang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new 2bba5601d73 modify auditStrategies to auditStrategy (#18720)
2bba5601d73 is described below

commit 2bba5601d73b4e018e55ea1ffdbebeeaf1b26c6f
Author: natehuang <na...@tencent.com>
AuthorDate: Thu Jun 30 14:24:34 2022 +0800

    modify auditStrategies to auditStrategy (#18720)
---
 .../sharding/api/config/ShardingRuleConfiguration.java   |  2 +-
 .../audit/ShardingAuditStrategyConfiguration.java        | 10 ++++++----
 .../AlgorithmProvidedShardingRuleConfiguration.java      |  2 +-
 .../sharding/checker/audit/ShardingAuditChecker.java     |  6 ++----
 .../shardingsphere/sharding/rule/ShardingRule.java       | 10 +++++-----
 .../yaml/config/YamlShardingRuleConfiguration.java       |  2 +-
 .../audit/YamlShardingAuditStrategyConfiguration.java    |  6 ++++--
 ...ingRuleAlgorithmProviderConfigurationYamlSwapper.java | 16 ++++++++++------
 .../swapper/ShardingRuleConfigurationYamlSwapper.java    | 16 ++++++++++------
 .../ShardingAuditStrategyConfigurationYamlSwapper.java   |  4 ++--
 10 files changed, 42 insertions(+), 32 deletions(-)

diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-api/src/main/java/org/apache/shardingsphere/sharding/api/config/ShardingRuleConfiguration.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-api/src/main/java/org/apache/shardingsphere/sharding/api/config/ShardingRuleConfiguration.java
index 2c207ceee34..7ef6fde8f8e 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-api/src/main/java/org/apache/shardingsphere/sharding/api/config/ShardingRuleConfiguration.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-api/src/main/java/org/apache/shardingsphere/sharding/api/config/ShardingRuleConfiguration.java
@@ -57,7 +57,7 @@ public final class ShardingRuleConfiguration implements DatabaseRuleConfiguratio
     
     private String defaultShardingColumn;
     
-    private Map<String, ShardingAuditStrategyConfiguration> auditStrategies = new LinkedHashMap<>();
+    private ShardingAuditStrategyConfiguration auditStrategy;
     
     private Map<String, ShardingSphereAlgorithmConfiguration> shardingAlgorithms = new LinkedHashMap<>();
     
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-api/src/main/java/org/apache/shardingsphere/sharding/api/config/strategy/audit/ShardingAuditStrategyConfiguration.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-api/src/main/java/org/apache/shardingsphere/sharding/api/config/strategy/audit/ShardingAuditStrategyConfiguration.java
index 55c42768c4b..045d0fdd3a4 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-api/src/main/java/org/apache/shardingsphere/sharding/api/config/strategy/audit/ShardingAuditStrategyConfiguration.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-api/src/main/java/org/apache/shardingsphere/sharding/api/config/strategy/audit/ShardingAuditStrategyConfiguration.java
@@ -18,21 +18,23 @@
 package org.apache.shardingsphere.sharding.api.config.strategy.audit;
 
 import com.google.common.base.Preconditions;
+import java.util.Collection;
 import lombok.Getter;
 
 /**
  * Sharding audit strategy configuration.
  */
+
 @Getter
 public final class ShardingAuditStrategyConfiguration {
     
-    private final String auditAlgorithmName;
+    private final Collection<String> auditAlgorithmNames;
     
     private final boolean allowHintDisable;
     
-    public ShardingAuditStrategyConfiguration(final String auditAlgorithmName, final boolean allowHintDisable) {
-        Preconditions.checkNotNull(auditAlgorithmName, "Sharding audit algorithm name is required.");
-        this.auditAlgorithmName = auditAlgorithmName;
+    public ShardingAuditStrategyConfiguration(final Collection<String> auditAlgorithmNames, final boolean allowHintDisable) {
+        Preconditions.checkNotNull(auditAlgorithmNames, "Sharding audit algorithm names is required.");
+        this.auditAlgorithmNames = auditAlgorithmNames;
         this.allowHintDisable = allowHintDisable;
     }
 }
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/algorithm/config/AlgorithmProvidedShardingRuleConfiguration.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/algorithm/config/AlgorithmProvidedShardingRuleConfiguration.java
index a20b4684f9b..932c9b6ad9a 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/algorithm/config/AlgorithmProvidedShardingRuleConfiguration.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/algorithm/config/AlgorithmProvidedShardingRuleConfiguration.java
@@ -58,7 +58,7 @@ public final class AlgorithmProvidedShardingRuleConfiguration implements Databas
     
     private String defaultShardingColumn;
     
-    private Map<String, ShardingAuditStrategyConfiguration> auditStrategies = new LinkedHashMap<>();
+    private ShardingAuditStrategyConfiguration auditStrategy;
     
     private Map<String, ShardingAlgorithm> shardingAlgorithms = new LinkedHashMap<>();
     
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/checker/audit/ShardingAuditChecker.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/checker/audit/ShardingAuditChecker.java
index d58ae646054..59c73478ab7 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/checker/audit/ShardingAuditChecker.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/checker/audit/ShardingAuditChecker.java
@@ -21,14 +21,12 @@ import org.apache.shardingsphere.infra.check.SQLCheckResult;
 import org.apache.shardingsphere.infra.executor.check.SQLChecker;
 import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import org.apache.shardingsphere.infra.metadata.user.Grantee;
-import org.apache.shardingsphere.sharding.api.config.strategy.audit.ShardingAuditStrategyConfiguration;
 import org.apache.shardingsphere.sharding.constant.ShardingOrder;
 import org.apache.shardingsphere.sharding.rule.ShardingRule;
 import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
 
 import java.util.List;
 import java.util.Map;
-import java.util.Map.Entry;
 import java.util.function.BiPredicate;
 
 /**
@@ -44,8 +42,8 @@ public final class ShardingAuditChecker implements SQLChecker<ShardingRule> {
     @Override
     public SQLCheckResult check(final SQLStatement sqlStatement, final List<Object> parameters, final Grantee grantee,
                                 final String currentDatabase, final Map<String, ShardingSphereDatabase> databases, final ShardingRule rule) {
-        for (Entry<String, ShardingAuditStrategyConfiguration> entry : rule.getAuditStrategies().entrySet()) {
-            SQLCheckResult result = rule.getAuditAlgorithms().get(entry.getValue().getAuditAlgorithmName()).check(sqlStatement, parameters, grantee, databases.get(currentDatabase));
+        for (String each : rule.getAuditStrategyConfig().getAuditAlgorithmNames()) {
+            SQLCheckResult result = rule.getAuditAlgorithms().get(each).check(sqlStatement, parameters, grantee, databases.get(currentDatabase));
             if (!result.isPassed()) {
                 return result;
             }
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/rule/ShardingRule.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/rule/ShardingRule.java
index ad65c20e89a..ee827159edb 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/rule/ShardingRule.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/rule/ShardingRule.java
@@ -113,7 +113,7 @@ public final class ShardingRule implements DatabaseRule, DataNodeContainedRule,
     
     private final Map<String, Collection<DataNode>> shardingTableDataNodes;
     
-    private final Map<String, ShardingAuditStrategyConfiguration> auditStrategies;
+    private final ShardingAuditStrategyConfiguration auditStrategyConfig;
     
     public ShardingRule(final ShardingRuleConfiguration config, final Collection<String> dataSourceNames) {
         configuration = config;
@@ -135,8 +135,8 @@ public final class ShardingRule implements DatabaseRule, DataNodeContainedRule,
         Preconditions.checkArgument(isValidBindingTableConfiguration(tableRules, new BindingTableCheckedConfiguration(this.dataSourceNames, shardingAlgorithms, config.getBindingTableGroups(),
                 broadcastTables, defaultDatabaseShardingStrategyConfig, defaultTableShardingStrategyConfig, defaultShardingColumn)),
                 "Invalid binding table configuration in ShardingRuleConfiguration.");
-        auditStrategies = null == config.getAuditStrategies() ? Collections.emptyMap() : config.getAuditStrategies();
-        Preconditions.checkArgument(auditStrategies.values().stream().allMatch(each -> auditAlgorithms.containsKey(each.getAuditAlgorithmName())), "Cannot find sharding audit algorithm");
+        auditStrategyConfig = null == config.getAuditStrategy() ? new ShardingAuditStrategyConfiguration(Collections.emptyList(), true) : config.getAuditStrategy();
+        Preconditions.checkArgument(auditStrategyConfig.getAuditAlgorithmNames().stream().allMatch(auditAlgorithms::containsKey), "Cannot find sharding audit algorithm");
     }
     
     public ShardingRule(final AlgorithmProvidedShardingRuleConfiguration config, final Collection<String> dataSourceNames) {
@@ -159,8 +159,8 @@ public final class ShardingRule implements DatabaseRule, DataNodeContainedRule,
         Preconditions.checkArgument(isValidBindingTableConfiguration(tableRules, new BindingTableCheckedConfiguration(this.dataSourceNames, shardingAlgorithms, config.getBindingTableGroups(),
                 broadcastTables, defaultDatabaseShardingStrategyConfig, defaultTableShardingStrategyConfig, defaultShardingColumn)),
                 "Invalid binding table configuration in ShardingRuleConfiguration.");
-        auditStrategies = null == config.getAuditStrategies() ? Collections.emptyMap() : config.getAuditStrategies();
-        Preconditions.checkArgument(auditStrategies.values().stream().allMatch(each -> auditAlgorithms.containsKey(each.getAuditAlgorithmName())), "Cannot find sharding audit algorithm");
+        auditStrategyConfig = null == config.getAuditStrategy() ? new ShardingAuditStrategyConfiguration(Collections.emptyList(), true) : config.getAuditStrategy();
+        Preconditions.checkArgument(auditStrategyConfig.getAuditAlgorithmNames().stream().allMatch(auditAlgorithms::containsKey), "Cannot find sharding audit algorithm");
     }
     
     private Map<String, Collection<DataNode>> createShardingTableDataNodes(final Map<String, TableRule> tableRules) {
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/yaml/config/YamlShardingRuleConfiguration.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/yaml/config/YamlShardingRuleConfiguration.java
index b8a95a0ae95..a2f1d9f7403 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/yaml/config/YamlShardingRuleConfiguration.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/yaml/config/YamlShardingRuleConfiguration.java
@@ -55,7 +55,7 @@ public final class YamlShardingRuleConfiguration implements YamlRuleConfiguratio
     
     private YamlKeyGenerateStrategyConfiguration defaultKeyGenerateStrategy;
     
-    private Map<String, YamlShardingAuditStrategyConfiguration> auditStrategies = new LinkedHashMap<>();
+    private YamlShardingAuditStrategyConfiguration auditStrategy;
     
     private Map<String, YamlShardingSphereAlgorithmConfiguration> shardingAlgorithms = new LinkedHashMap<>();
     
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/yaml/config/strategy/audit/YamlShardingAuditStrategyConfiguration.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/yaml/config/strategy/audit/YamlShardingAuditStrategyConfiguration.java
index 3775fd093df..0e96967e225 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/yaml/config/strategy/audit/YamlShardingAuditStrategyConfiguration.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/yaml/config/strategy/audit/YamlShardingAuditStrategyConfiguration.java
@@ -21,6 +21,8 @@ import lombok.Getter;
 import lombok.Setter;
 import org.apache.shardingsphere.infra.yaml.config.pojo.YamlConfiguration;
 
+import java.util.Collection;
+
 /**
  * Sharing audit strategy configuration for YAML.
  */
@@ -28,7 +30,7 @@ import org.apache.shardingsphere.infra.yaml.config.pojo.YamlConfiguration;
 @Setter
 public final class YamlShardingAuditStrategyConfiguration implements YamlConfiguration {
     
-    private String auditAlgorithmName;
+    private Collection<String> auditAlgorithmNames;
     
-    private boolean allowHintDisable;
+    private boolean allowHintDisable = true;
 }
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/yaml/swapper/ShardingRuleAlgorithmProviderConfigurationYamlSwapper.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/yaml/swapper/ShardingRuleAlgorithmProviderConfigurationYamlSwapper.java
index db329c09798..8e4846ec941 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/yaml/swapper/ShardingRuleAlgorithmProviderConfigurationYamlSwapper.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/yaml/swapper/ShardingRuleAlgorithmProviderConfigurationYamlSwapper.java
@@ -54,13 +54,12 @@ public final class ShardingRuleAlgorithmProviderConfigurationYamlSwapper impleme
                 .swapToYamlConfiguration(each)));
         result.getBindingTables().addAll(data.getBindingTableGroups());
         result.getBroadcastTables().addAll(data.getBroadcastTables());
-        setYamlDefaultStrategies(data, result);
+        setYamlStrategies(data, result);
         setYamlAlgorithms(data, result);
-        data.getAuditStrategies().forEach((key, value) -> result.getAuditStrategies().put(key, auditStrategyYamlSwapper.swapToYamlConfiguration(value)));
         return result;
     }
     
-    private void setYamlDefaultStrategies(final AlgorithmProvidedShardingRuleConfiguration data, final YamlShardingRuleConfiguration yamlConfig) {
+    private void setYamlStrategies(final AlgorithmProvidedShardingRuleConfiguration data, final YamlShardingRuleConfiguration yamlConfig) {
         if (null != data.getDefaultDatabaseShardingStrategy()) {
             yamlConfig.setDefaultDatabaseStrategy(shardingStrategyYamlSwapper.swapToYamlConfiguration(data.getDefaultDatabaseShardingStrategy()));
         }
@@ -70,6 +69,9 @@ public final class ShardingRuleAlgorithmProviderConfigurationYamlSwapper impleme
         if (null != data.getDefaultKeyGenerateStrategy()) {
             yamlConfig.setDefaultKeyGenerateStrategy(keyGenerateStrategyYamlSwapper.swapToYamlConfiguration(data.getDefaultKeyGenerateStrategy()));
         }
+        if (null != data.getAuditStrategy()) {
+            yamlConfig.setAuditStrategy(auditStrategyYamlSwapper.swapToYamlConfiguration(data.getAuditStrategy()));
+        }
     }
     
     private void setYamlAlgorithms(final AlgorithmProvidedShardingRuleConfiguration data, final YamlShardingRuleConfiguration yamlConfig) {
@@ -100,13 +102,12 @@ public final class ShardingRuleAlgorithmProviderConfigurationYamlSwapper impleme
         }
         result.getBindingTableGroups().addAll(yamlConfig.getBindingTables());
         result.getBroadcastTables().addAll(yamlConfig.getBroadcastTables());
-        setDefaultStrategies(yamlConfig, result);
+        setStrategies(yamlConfig, result);
         result.setDefaultShardingColumn(yamlConfig.getDefaultShardingColumn());
-        yamlConfig.getAuditStrategies().forEach((key, value) -> result.getAuditStrategies().put(key, auditStrategyYamlSwapper.swapToObject(value)));
         return result;
     }
     
-    private void setDefaultStrategies(final YamlShardingRuleConfiguration yamlConfig, final AlgorithmProvidedShardingRuleConfiguration ruleConfig) {
+    private void setStrategies(final YamlShardingRuleConfiguration yamlConfig, final AlgorithmProvidedShardingRuleConfiguration ruleConfig) {
         if (null != yamlConfig.getDefaultDatabaseStrategy()) {
             ruleConfig.setDefaultDatabaseShardingStrategy(shardingStrategyYamlSwapper.swapToObject(yamlConfig.getDefaultDatabaseStrategy()));
         }
@@ -116,6 +117,9 @@ public final class ShardingRuleAlgorithmProviderConfigurationYamlSwapper impleme
         if (null != yamlConfig.getDefaultKeyGenerateStrategy()) {
             ruleConfig.setDefaultKeyGenerateStrategy(keyGenerateStrategyYamlSwapper.swapToObject(yamlConfig.getDefaultKeyGenerateStrategy()));
         }
+        if (null != yamlConfig.getAuditStrategy()) {
+            ruleConfig.setAuditStrategy(auditStrategyYamlSwapper.swapToObject(yamlConfig.getAuditStrategy()));
+        }
     }
     
     @Override
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/yaml/swapper/ShardingRuleConfigurationYamlSwapper.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/yaml/swapper/ShardingRuleConfigurationYamlSwapper.java
index 1edeef1ef51..aaf392f9c62 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/yaml/swapper/ShardingRuleConfigurationYamlSwapper.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/yaml/swapper/ShardingRuleConfigurationYamlSwapper.java
@@ -59,15 +59,14 @@ public final class ShardingRuleConfigurationYamlSwapper implements YamlRuleConfi
                 new ShardingAutoTableRuleConfigurationYamlSwapper(Collections.emptyMap(), data.getShardingAlgorithms()).swapToYamlConfiguration(each)));
         result.getBindingTables().addAll(data.getBindingTableGroups());
         result.getBroadcastTables().addAll(data.getBroadcastTables());
-        setYamlDefaultStrategies(data, result);
+        setYamlStrategies(data, result);
         setYamlAlgorithms(data, result);
         result.setDefaultShardingColumn(data.getDefaultShardingColumn());
         result.setScalingName(data.getScalingName());
-        data.getAuditStrategies().forEach((key, value) -> result.getAuditStrategies().put(key, auditStrategyYamlSwapper.swapToYamlConfiguration(value)));
         return result;
     }
     
-    private void setYamlDefaultStrategies(final ShardingRuleConfiguration data, final YamlShardingRuleConfiguration yamlConfig) {
+    private void setYamlStrategies(final ShardingRuleConfiguration data, final YamlShardingRuleConfiguration yamlConfig) {
         if (null != data.getDefaultDatabaseShardingStrategy()) {
             yamlConfig.setDefaultDatabaseStrategy(shardingStrategyYamlSwapper.swapToYamlConfiguration(data.getDefaultDatabaseShardingStrategy()));
         }
@@ -77,6 +76,9 @@ public final class ShardingRuleConfigurationYamlSwapper implements YamlRuleConfi
         if (null != data.getDefaultKeyGenerateStrategy()) {
             yamlConfig.setDefaultKeyGenerateStrategy(keyGenerateStrategyYamlSwapper.swapToYamlConfiguration(data.getDefaultKeyGenerateStrategy()));
         }
+        if (null != data.getAuditStrategy()) {
+            yamlConfig.setAuditStrategy(auditStrategyYamlSwapper.swapToYamlConfiguration(data.getAuditStrategy()));
+        }
     }
     
     private void setYamlAlgorithms(final ShardingRuleConfiguration data, final YamlShardingRuleConfiguration yamlConfig) {
@@ -106,15 +108,14 @@ public final class ShardingRuleConfigurationYamlSwapper implements YamlRuleConfi
         }
         result.getBindingTableGroups().addAll(yamlConfig.getBindingTables());
         result.getBroadcastTables().addAll(yamlConfig.getBroadcastTables());
-        setDefaultStrategies(yamlConfig, result);
+        setStrategies(yamlConfig, result);
         setAlgorithms(yamlConfig, result);
         result.setDefaultShardingColumn(yamlConfig.getDefaultShardingColumn());
         result.setScalingName(yamlConfig.getScalingName());
-        yamlConfig.getAuditStrategies().forEach((key, value) -> result.getAuditStrategies().put(key, auditStrategyYamlSwapper.swapToObject(value)));
         return result;
     }
     
-    private void setDefaultStrategies(final YamlShardingRuleConfiguration yamlConfig, final ShardingRuleConfiguration ruleConfig) {
+    private void setStrategies(final YamlShardingRuleConfiguration yamlConfig, final ShardingRuleConfiguration ruleConfig) {
         if (null != yamlConfig.getDefaultDatabaseStrategy()) {
             ruleConfig.setDefaultDatabaseShardingStrategy(shardingStrategyYamlSwapper.swapToObject(yamlConfig.getDefaultDatabaseStrategy()));
         }
@@ -124,6 +125,9 @@ public final class ShardingRuleConfigurationYamlSwapper implements YamlRuleConfi
         if (null != yamlConfig.getDefaultKeyGenerateStrategy()) {
             ruleConfig.setDefaultKeyGenerateStrategy(keyGenerateStrategyYamlSwapper.swapToObject(yamlConfig.getDefaultKeyGenerateStrategy()));
         }
+        if (null != yamlConfig.getAuditStrategy()) {
+            ruleConfig.setAuditStrategy(auditStrategyYamlSwapper.swapToObject(yamlConfig.getAuditStrategy()));
+        }
     }
     
     private void setAlgorithms(final YamlShardingRuleConfiguration yamlConfig, final ShardingRuleConfiguration ruleConfig) {
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/yaml/swapper/strategy/ShardingAuditStrategyConfigurationYamlSwapper.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/yaml/swapper/strategy/ShardingAuditStrategyConfigurationYamlSwapper.java
index 5a6b975fba6..2a526c9ec69 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/yaml/swapper/strategy/ShardingAuditStrategyConfigurationYamlSwapper.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/yaml/swapper/strategy/ShardingAuditStrategyConfigurationYamlSwapper.java
@@ -29,13 +29,13 @@ public final class ShardingAuditStrategyConfigurationYamlSwapper implements Yaml
     @Override
     public YamlShardingAuditStrategyConfiguration swapToYamlConfiguration(final ShardingAuditStrategyConfiguration data) {
         YamlShardingAuditStrategyConfiguration result = new YamlShardingAuditStrategyConfiguration();
-        result.setAuditAlgorithmName(data.getAuditAlgorithmName());
+        result.getAuditAlgorithmNames().addAll(data.getAuditAlgorithmNames());
         result.setAllowHintDisable(data.isAllowHintDisable());
         return result;
     }
     
     @Override
     public ShardingAuditStrategyConfiguration swapToObject(final YamlShardingAuditStrategyConfiguration yamlConfig) {
-        return new ShardingAuditStrategyConfiguration(yamlConfig.getAuditAlgorithmName(), yamlConfig.isAllowHintDisable());
+        return new ShardingAuditStrategyConfiguration(yamlConfig.getAuditAlgorithmNames(), yamlConfig.isAllowHintDisable());
     }
 }