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/05/29 06:25:34 UTC
[shardingsphere] branch master updated: Refactor EncryptRule (#18041)
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 1f1877e66ac Refactor EncryptRule (#18041)
1f1877e66ac is described below
commit 1f1877e66ac700d60fadc3faa5935e085fe6e3ca
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Sun May 29 14:25:27 2022 +0800
Refactor EncryptRule (#18041)
* Refactor ShadowRule
* Refactor EncryptTable
* Refactor EncryptRule
---
.../shardingsphere/encrypt/rule/EncryptRule.java | 19 ++++++++-----------
.../shardingsphere/encrypt/rule/EncryptTable.java | 3 +--
2 files changed, 9 insertions(+), 13 deletions(-)
diff --git a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptRule.java b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptRule.java
index e14c250b403..ea4e380511d 100644
--- a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptRule.java
+++ b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptRule.java
@@ -62,7 +62,7 @@ public final class EncryptRule implements SchemaRule, TableContainedRule {
public EncryptRule(final EncryptRuleConfiguration config, final Map<String, DataSource> dataSourceMap) {
Preconditions.checkArgument(isValidRuleConfiguration(config), "Invalid encrypt column configurations in EncryptTableRuleConfigurations.");
config.getEncryptors().forEach((key, value) -> encryptors.put(key, EncryptAlgorithmFactory.newInstance(value)));
- Map<String, Integer> dataTypes = containsConfigDataTypeColumn(config.getTables()) ? getDataTypes(dataSourceMap) : Collections.emptyMap();
+ Map<String, Integer> dataTypes = containsConfiguredDataType(config.getTables()) ? getDataTypes(dataSourceMap) : Collections.emptyMap();
config.getTables().forEach(each -> tables.put(each.getName().toLowerCase(), new EncryptTable(each, dataTypes)));
queryWithCipherColumn = config.isQueryWithCipherColumn();
}
@@ -70,7 +70,7 @@ public final class EncryptRule implements SchemaRule, TableContainedRule {
public EncryptRule(final AlgorithmProvidedEncryptRuleConfiguration config, final Map<String, DataSource> dataSourceMap) {
Preconditions.checkArgument(isValidRuleConfigurationWithAlgorithmProvided(config), "Invalid encrypt column configurations in EncryptTableRuleConfigurations.");
encryptors.putAll(config.getEncryptors());
- Map<String, Integer> dataTypes = containsConfigDataTypeColumn(config.getTables()) ? getDataTypes(dataSourceMap) : Collections.emptyMap();
+ Map<String, Integer> dataTypes = containsConfiguredDataType(config.getTables()) ? getDataTypes(dataSourceMap) : Collections.emptyMap();
config.getTables().forEach(each -> tables.put(each.getName().toLowerCase(), new EncryptTable(each, dataTypes)));
queryWithCipherColumn = config.isQueryWithCipherColumn();
}
@@ -130,15 +130,12 @@ public final class EncryptRule implements SchemaRule, TableContainedRule {
return Collections.emptyMap();
}
- private boolean containsConfigDataTypeColumn(final Collection<EncryptTableRuleConfiguration> tableRuleConfigs) {
- for (EncryptTableRuleConfiguration each : tableRuleConfigs) {
- for (EncryptColumnRuleConfiguration column : each.getColumns()) {
- if (null != column.getLogicDataType() && !column.getLogicDataType().isEmpty()) {
- return true;
- }
- }
- }
- return false;
+ private boolean containsConfiguredDataType(final Collection<EncryptTableRuleConfiguration> tableRuleConfigs) {
+ return tableRuleConfigs.stream().anyMatch(this::containsConfiguredDataType);
+ }
+
+ private boolean containsConfiguredDataType(final EncryptTableRuleConfiguration tableConfig) {
+ return tableConfig.getColumns().stream().anyMatch(each -> !Strings.isNullOrEmpty(each.getLogicDataType()));
}
/**
diff --git a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptTable.java b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptTable.java
index 5de89ddefe9..8b360127457 100644
--- a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptTable.java
+++ b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptTable.java
@@ -46,8 +46,7 @@ public final class EncryptTable {
for (EncryptColumnRuleConfiguration each : config.getColumns()) {
checkColumnConfig(each);
columns.put(each.getLogicColumn(), new EncryptColumn(getEncryptColumnDataType(each.getLogicDataType(), dataTypes), each.getCipherColumn(),
- getEncryptColumnDataType(each.getCipherDataType(), dataTypes), each.getAssistedQueryColumn(), getEncryptColumnDataType(each.getAssistedQueryDataType(),
- dataTypes),
+ getEncryptColumnDataType(each.getCipherDataType(), dataTypes), each.getAssistedQueryColumn(), getEncryptColumnDataType(each.getAssistedQueryDataType(), dataTypes),
each.getPlainColumn(), getEncryptColumnDataType(each.getPlainDataType(), dataTypes), each.getEncryptorName(), each.getQueryWithCipherColumn()));
}
queryWithCipherColumn = config.getQueryWithCipherColumn();