This is an automated email from the ASF dual-hosted git repository.
sunnianjun 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 ad206082cd5 Refactor EncryptRule (#26443)
ad206082cd5 is described below
commit ad206082cd56980b96efb974c867d5d0fc3dbfd0
Author: Liang Zhang <[email protected]>
AuthorDate: Tue Jun 20 15:41:08 2023 +0800
Refactor EncryptRule (#26443)
---
.../generator/EncryptAlterTableTokenGenerator.java | 5 +-
.../shardingsphere/encrypt/rule/EncryptColumn.java | 13 ++++--
.../encrypt/rule/EncryptColumnItem.java | 7 ++-
.../shardingsphere/encrypt/rule/EncryptRule.java | 21 ++++-----
.../shardingsphere/encrypt/rule/EncryptTable.java | 54 +++++++++++++---------
...atedEncryptShowCreateTableMergedResultTest.java | 4 +-
...rgedEncryptShowCreateTableMergedResultTest.java | 4 +-
.../EncryptAlterTableTokenGeneratorTest.java | 16 ++++---
.../EncryptCreateTableTokenGeneratorTest.java | 9 ++--
.../encrypt/rule/EncryptColumnTest.java | 41 ----------------
.../encrypt/rule/EncryptTableTest.java | 9 ++--
11 files changed, 84 insertions(+), 99 deletions(-)
diff --git
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAlterTableTokenGenerator.java
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAlterTableTokenGenerator.java
index f82606b06f3..1db71f39e8f 100644
---
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAlterTableTokenGenerator.java
+++
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAlterTableTokenGenerator.java
@@ -18,6 +18,7 @@
package org.apache.shardingsphere.encrypt.rewrite.token.generator;
import lombok.Setter;
+import
org.apache.shardingsphere.encrypt.api.encrypt.standard.StandardEncryptAlgorithm;
import
org.apache.shardingsphere.encrypt.exception.metadata.EncryptColumnAlterException;
import org.apache.shardingsphere.encrypt.rewrite.aware.EncryptRuleAware;
import
org.apache.shardingsphere.encrypt.rewrite.token.pojo.EncryptAlterTableToken;
@@ -181,8 +182,8 @@ public final class EncryptAlterTableTokenGenerator
implements CollectionSQLToken
}
private void isSameEncryptColumn(final EncryptTable encryptTable, final
ChangeColumnDefinitionSegment segment) {
- Optional<String> previousEncryptorName =
encryptTable.findEncryptorName(segment.getPreviousColumn().getIdentifier().getValue());
- Optional<String> currentEncryptorName =
encryptTable.findEncryptorName(segment.getColumnDefinition().getColumnName().getIdentifier().getValue());
+ Optional<StandardEncryptAlgorithm<?, ?>> previousEncryptorName =
encryptTable.findEncryptor(segment.getPreviousColumn().getIdentifier().getValue());
+ Optional<StandardEncryptAlgorithm<?, ?>> currentEncryptorName =
encryptTable.findEncryptor(segment.getColumnDefinition().getColumnName().getIdentifier().getValue());
if (!previousEncryptorName.isPresent() &&
!currentEncryptorName.isPresent()) {
return;
}
diff --git
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptColumn.java
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptColumn.java
index 485d45a0d4a..3f0ea9549c1 100644
---
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptColumn.java
+++
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptColumn.java
@@ -20,6 +20,9 @@ package org.apache.shardingsphere.encrypt.rule;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.Setter;
+import
org.apache.shardingsphere.encrypt.api.encrypt.assisted.AssistedEncryptAlgorithm;
+import org.apache.shardingsphere.encrypt.api.encrypt.like.LikeEncryptAlgorithm;
+import
org.apache.shardingsphere.encrypt.api.encrypt.standard.StandardEncryptAlgorithm;
import java.util.Optional;
@@ -33,18 +36,18 @@ public final class EncryptColumn {
private final String name;
- private final EncryptColumnItem cipher;
+ private final EncryptColumnItem<StandardEncryptAlgorithm<?, ?>> cipher;
- private EncryptColumnItem assistedQuery;
+ private EncryptColumnItem<AssistedEncryptAlgorithm<?, ?>> assistedQuery;
- private EncryptColumnItem likeQuery;
+ private EncryptColumnItem<LikeEncryptAlgorithm<?, ?>> likeQuery;
/**
* Get assisted query column item.
*
* @return assisted query column item
*/
- public Optional<EncryptColumnItem> getAssistedQuery() {
+ public Optional<EncryptColumnItem<AssistedEncryptAlgorithm<?, ?>>>
getAssistedQuery() {
return Optional.ofNullable(assistedQuery);
}
@@ -53,7 +56,7 @@ public final class EncryptColumn {
*
* @return like query column item
*/
- public Optional<EncryptColumnItem> getLikeQuery() {
+ public Optional<EncryptColumnItem<LikeEncryptAlgorithm<?, ?>>>
getLikeQuery() {
return Optional.ofNullable(likeQuery);
}
}
diff --git
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptColumnItem.java
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptColumnItem.java
index 36e0edf5eed..69f584f39f3 100644
---
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptColumnItem.java
+++
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptColumnItem.java
@@ -19,15 +19,18 @@ package org.apache.shardingsphere.encrypt.rule;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
+import org.apache.shardingsphere.encrypt.spi.EncryptAlgorithm;
/**
* Encrypt column item.
+ *
+ * @param <T> type of encryptor
*/
@RequiredArgsConstructor
@Getter
-public final class EncryptColumnItem {
+public final class EncryptColumnItem<T extends EncryptAlgorithm<?, ?>> {
private final String name;
- private final String encryptorName;
+ private final T encryptor;
}
diff --git
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptRule.java
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptRule.java
index 508332366e1..371f82465e8 100644
---
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptRule.java
+++
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptRule.java
@@ -56,10 +56,10 @@ public final class EncryptRule implements DatabaseRule,
TableContainedRule {
private final Map<String, StandardEncryptAlgorithm> standardEncryptors =
new LinkedHashMap<>();
@SuppressWarnings("rawtypes")
- private final Map<String, LikeEncryptAlgorithm> likeEncryptors = new
LinkedHashMap<>();
+ private final Map<String, AssistedEncryptAlgorithm> assistedEncryptors =
new LinkedHashMap<>();
@SuppressWarnings("rawtypes")
- private final Map<String, AssistedEncryptAlgorithm> assistedEncryptors =
new LinkedHashMap<>();
+ private final Map<String, LikeEncryptAlgorithm> likeEncryptors = new
LinkedHashMap<>();
private final Map<String, EncryptTable> tables = new LinkedHashMap<>();
@@ -70,7 +70,7 @@ public final class EncryptRule implements DatabaseRule,
TableContainedRule {
ruleConfig.getEncryptors().forEach((key, value) ->
putAllEncryptors(key, TypedSPILoader.getService(EncryptAlgorithm.class,
value.getType(), value.getProps())));
for (EncryptTableRuleConfiguration each : ruleConfig.getTables()) {
each.getColumns().forEach(this::checkEncryptAlgorithmType);
- tables.put(each.getName().toLowerCase(), new EncryptTable(each));
+ tables.put(each.getName().toLowerCase(), new EncryptTable(each,
standardEncryptors, assistedEncryptors, likeEncryptors));
tableNamesMapper.put(each.getName());
}
}
@@ -86,7 +86,7 @@ public final class EncryptRule implements DatabaseRule,
TableContainedRule {
ruleConfig.getEncryptors().forEach((key, value) ->
putAllEncryptors(key, TypedSPILoader.getService(EncryptAlgorithm.class,
value.getType(), value.getProps())));
for (EncryptTableRuleConfiguration each : ruleConfig.getTables()) {
each.getColumns().forEach(this::checkEncryptAlgorithmType);
- tables.put(each.getName().toLowerCase(), new EncryptTable(each));
+ tables.put(each.getName().toLowerCase(), new EncryptTable(each,
standardEncryptors, assistedEncryptors, likeEncryptors));
tableNamesMapper.put(each.getName());
}
}
@@ -96,12 +96,12 @@ public final class EncryptRule implements DatabaseRule,
TableContainedRule {
if (algorithm instanceof StandardEncryptAlgorithm) {
standardEncryptors.put(encryptorName, (StandardEncryptAlgorithm)
algorithm);
}
- if (algorithm instanceof LikeEncryptAlgorithm) {
- likeEncryptors.put(encryptorName, (LikeEncryptAlgorithm)
algorithm);
- }
if (algorithm instanceof AssistedEncryptAlgorithm) {
assistedEncryptors.put(encryptorName, (AssistedEncryptAlgorithm)
algorithm);
}
+ if (algorithm instanceof LikeEncryptAlgorithm) {
+ likeEncryptors.put(encryptorName, (LikeEncryptAlgorithm)
algorithm);
+ }
}
private void checkEncryptAlgorithmType(final
EncryptColumnRuleConfiguration columnRuleConfig) {
@@ -199,8 +199,7 @@ public final class EncryptRule implements DatabaseRule,
TableContainedRule {
@SuppressWarnings("rawtypes")
private StandardEncryptAlgorithm getStandardEncryptor(final String
tableName, final String logicColumnName) {
- return findEncryptTable(tableName).flatMap(optional ->
optional.findEncryptorName(logicColumnName).map(standardEncryptors::get))
- .orElseThrow(() -> new MissingEncryptorException(tableName,
logicColumnName, "STANDARD"));
+ return findEncryptTable(tableName).flatMap(optional ->
optional.findEncryptor(logicColumnName)).orElseThrow(() -> new
MissingEncryptorException(tableName, logicColumnName, "STANDARD"));
}
/**
@@ -249,7 +248,7 @@ public final class EncryptRule implements DatabaseRule,
TableContainedRule {
@SuppressWarnings("rawtypes")
private AssistedEncryptAlgorithm getAssistedQueryEncryptor(final String
tableName, final String logicColumnName) {
- return findEncryptTable(tableName).flatMap(optional ->
optional.findAssistedQueryEncryptorName(logicColumnName).map(assistedEncryptors::get))
+ return findEncryptTable(tableName).flatMap(optional ->
optional.findAssistedQueryEncryptor(logicColumnName))
.orElseThrow(() -> new MissingEncryptorException(tableName,
logicColumnName, "ASSIST_QUERY"));
}
@@ -298,7 +297,7 @@ public final class EncryptRule implements DatabaseRule,
TableContainedRule {
@SuppressWarnings("rawtypes")
private LikeEncryptAlgorithm getLikeQueryEncryptor(final String tableName,
final String logicColumnName) {
- return findEncryptTable(tableName).flatMap(optional ->
optional.findLikeQueryEncryptorName(logicColumnName).map(likeEncryptors::get))
+ return findEncryptTable(tableName).flatMap(optional ->
optional.findLikeQueryEncryptor(logicColumnName))
.orElseThrow(() -> new MissingEncryptorException(tableName,
logicColumnName, "LIKE_QUERY"));
}
diff --git
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptTable.java
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptTable.java
index 256a62815c7..3ba33852fb9 100644
---
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptTable.java
+++
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rule/EncryptTable.java
@@ -20,6 +20,9 @@ package org.apache.shardingsphere.encrypt.rule;
import lombok.Getter;
import
org.apache.shardingsphere.encrypt.api.config.rule.EncryptColumnRuleConfiguration;
import
org.apache.shardingsphere.encrypt.api.config.rule.EncryptTableRuleConfiguration;
+import
org.apache.shardingsphere.encrypt.api.encrypt.assisted.AssistedEncryptAlgorithm;
+import org.apache.shardingsphere.encrypt.api.encrypt.like.LikeEncryptAlgorithm;
+import
org.apache.shardingsphere.encrypt.api.encrypt.standard.StandardEncryptAlgorithm;
import
org.apache.shardingsphere.encrypt.exception.metadata.EncryptColumnNotFoundException;
import
org.apache.shardingsphere.encrypt.exception.metadata.EncryptLogicColumnNotFoundException;
import
org.apache.shardingsphere.infra.util.exception.ShardingSpherePreconditions;
@@ -41,59 +44,66 @@ public final class EncryptTable {
private final Map<String, EncryptColumn> columns;
- public EncryptTable(final EncryptTableRuleConfiguration config) {
+ @SuppressWarnings("rawtypes")
+ public EncryptTable(final EncryptTableRuleConfiguration config, final
Map<String, StandardEncryptAlgorithm> standardEncryptors,
+ final Map<String, AssistedEncryptAlgorithm>
assistedEncryptors, final Map<String, LikeEncryptAlgorithm> likeEncryptors) {
table = config.getName();
- columns = createEncryptColumns(config);
+ columns = createEncryptColumns(config, standardEncryptors,
assistedEncryptors, likeEncryptors);
}
- private Map<String, EncryptColumn> createEncryptColumns(final
EncryptTableRuleConfiguration config) {
+ @SuppressWarnings("rawtypes")
+ private Map<String, EncryptColumn> createEncryptColumns(final
EncryptTableRuleConfiguration config, final Map<String,
StandardEncryptAlgorithm> standardEncryptors,
+ final Map<String,
AssistedEncryptAlgorithm> assistedEncryptors, final Map<String,
LikeEncryptAlgorithm> likeEncryptors) {
Map<String, EncryptColumn> result = new
TreeMap<>(String.CASE_INSENSITIVE_ORDER);
for (EncryptColumnRuleConfiguration each : config.getColumns()) {
- result.put(each.getName(), createEncryptColumn(each));
+ result.put(each.getName(), createEncryptColumn(each,
standardEncryptors, assistedEncryptors, likeEncryptors));
}
return result;
}
- private EncryptColumn createEncryptColumn(final
EncryptColumnRuleConfiguration config) {
- EncryptColumnItem cipherColumnItem = new
EncryptColumnItem(config.getCipher().getName(),
config.getCipher().getEncryptorName());
- EncryptColumn result = new EncryptColumn(config.getName(),
cipherColumnItem);
+ @SuppressWarnings("rawtypes")
+ private EncryptColumn createEncryptColumn(final
EncryptColumnRuleConfiguration config, final Map<String,
StandardEncryptAlgorithm> standardEncryptors,
+ final Map<String,
AssistedEncryptAlgorithm> assistedEncryptors, final Map<String,
LikeEncryptAlgorithm> likeEncryptors) {
+ EncryptColumn result = new EncryptColumn(config.getName(),
+ new EncryptColumnItem<StandardEncryptAlgorithm<?,
?>>(config.getCipher().getName(),
standardEncryptors.get(config.getCipher().getEncryptorName())));
if (config.getAssistedQuery().isPresent()) {
- result.setAssistedQuery(new
EncryptColumnItem(config.getAssistedQuery().get().getName(),
config.getAssistedQuery().get().getEncryptorName()));
+ result.setAssistedQuery(
+ new EncryptColumnItem<AssistedEncryptAlgorithm<?,
?>>(config.getAssistedQuery().get().getName(),
assistedEncryptors.get(config.getAssistedQuery().get().getEncryptorName())));
}
if (config.getLikeQuery().isPresent()) {
- result.setLikeQuery(new
EncryptColumnItem(config.getLikeQuery().get().getName(),
config.getLikeQuery().get().getEncryptorName()));
+ result.setLikeQuery(new EncryptColumnItem<LikeEncryptAlgorithm<?,
?>>(config.getLikeQuery().get().getName(),
likeEncryptors.get(config.getLikeQuery().get().getEncryptorName())));
}
return result;
}
/**
- * Find encryptor name.
+ * Find encryptor.
*
* @param logicColumnName logic column name
- * @return encrypt algorithm name
+ * @return found encryptor
*/
- public Optional<String> findEncryptorName(final String logicColumnName) {
- return columns.containsKey(logicColumnName) ?
Optional.of(columns.get(logicColumnName).getCipher().getEncryptorName()) :
Optional.empty();
+ public Optional<StandardEncryptAlgorithm<?, ?>> findEncryptor(final String
logicColumnName) {
+ return columns.containsKey(logicColumnName) ?
Optional.of((StandardEncryptAlgorithm<?, ?>)
columns.get(logicColumnName).getCipher().getEncryptor()) : Optional.empty();
}
/**
- * Find assisted query encryptor name.
+ * Find assisted query encryptor.
*
* @param logicColumnName logic column name
- * @return assist query encryptor name
+ * @return found assisted query encryptor
*/
- public Optional<String> findAssistedQueryEncryptorName(final String
logicColumnName) {
- return columns.containsKey(logicColumnName) ?
columns.get(logicColumnName).getAssistedQuery().map(EncryptColumnItem::getEncryptorName)
: Optional.empty();
+ public Optional<AssistedEncryptAlgorithm<?, ?>>
findAssistedQueryEncryptor(final String logicColumnName) {
+ return columns.containsKey(logicColumnName) ?
columns.get(logicColumnName).getAssistedQuery().map(optional ->
(AssistedEncryptAlgorithm<?, ?>) optional.getEncryptor()) : Optional.empty();
}
/**
- * Find like query encrypt algorithm name.
+ * Find like query encryptor.
*
* @param logicColumnName logic column name
- * @return like encrypt algorithm name
+ * @return found like query encryptor
*/
- public Optional<String> findLikeQueryEncryptorName(final String
logicColumnName) {
- return columns.containsKey(logicColumnName) ?
columns.get(logicColumnName).getLikeQuery().map(EncryptColumnItem::getEncryptorName)
: Optional.empty();
+ public Optional<LikeEncryptAlgorithm<?, ?>> findLikeQueryEncryptor(final
String logicColumnName) {
+ return columns.containsKey(logicColumnName) ?
columns.get(logicColumnName).getLikeQuery().map(optional ->
(LikeEncryptAlgorithm<?, ?>) optional.getEncryptor()) : Optional.empty();
}
/**
@@ -184,7 +194,7 @@ public final class EncryptTable {
/**
* Find like query column.
*
- * @param logicColumnName column name
+ * @param logicColumnName logic column name
* @return like query column
*/
public Optional<String> findLikeQueryColumn(final String logicColumnName) {
diff --git
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/merge/dal/show/DecoratedEncryptShowCreateTableMergedResultTest.java
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/merge/dal/show/DecoratedEncryptShowCreateTableMergedResultTest.java
index 462b645c4c3..6858bf9f1a9 100644
---
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/merge/dal/show/DecoratedEncryptShowCreateTableMergedResultTest.java
+++
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/merge/dal/show/DecoratedEncryptShowCreateTableMergedResultTest.java
@@ -93,9 +93,9 @@ class DecoratedEncryptShowCreateTableMergedResultTest {
+ " PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT
CHARSET=utf8mb4;"));
}
- private EncryptRule mockEncryptRule(final
Collection<EncryptColumnRuleConfiguration> encryptColumnRuleConfigurations) {
+ private EncryptRule mockEncryptRule(final
Collection<EncryptColumnRuleConfiguration> encryptColumnRuleConfigs) {
EncryptRule result = mock(EncryptRule.class);
- EncryptTable encryptTable = new EncryptTable(new
EncryptTableRuleConfiguration("t_encrypt", encryptColumnRuleConfigurations));
+ EncryptTable encryptTable = new EncryptTable(new
EncryptTableRuleConfiguration("t_encrypt", encryptColumnRuleConfigs),
Collections.emptyMap(), Collections.emptyMap(), Collections.emptyMap());
when(result.findEncryptTable("t_encrypt")).thenReturn(Optional.of(encryptTable));
return result;
}
diff --git
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/merge/dal/show/MergedEncryptShowCreateTableMergedResultTest.java
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/merge/dal/show/MergedEncryptShowCreateTableMergedResultTest.java
index 7e47492844f..f01638ebacd 100644
---
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/merge/dal/show/MergedEncryptShowCreateTableMergedResultTest.java
+++
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/merge/dal/show/MergedEncryptShowCreateTableMergedResultTest.java
@@ -91,9 +91,9 @@ class MergedEncryptShowCreateTableMergedResultTest {
+ " PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT
CHARSET=utf8mb4;"));
}
- private EncryptRule mockEncryptRule(final
Collection<EncryptColumnRuleConfiguration> columnRuleConfigurations) {
+ private EncryptRule mockEncryptRule(final
Collection<EncryptColumnRuleConfiguration> columnRuleConfigs) {
EncryptRule result = mock(EncryptRule.class);
- EncryptTable encryptTable = new EncryptTable(new
EncryptTableRuleConfiguration("t_encrypt", columnRuleConfigurations));
+ EncryptTable encryptTable = new EncryptTable(new
EncryptTableRuleConfiguration("t_encrypt", columnRuleConfigs),
Collections.emptyMap(), Collections.emptyMap(), Collections.emptyMap());
when(result.findEncryptTable("t_encrypt")).thenReturn(Optional.of(encryptTable));
return result;
}
diff --git
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAlterTableTokenGeneratorTest.java
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAlterTableTokenGeneratorTest.java
index b3844207ac9..9cb592e3ddb 100644
---
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAlterTableTokenGeneratorTest.java
+++
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAlterTableTokenGeneratorTest.java
@@ -17,6 +17,9 @@
package org.apache.shardingsphere.encrypt.rewrite.token.generator;
+import
org.apache.shardingsphere.encrypt.api.encrypt.assisted.AssistedEncryptAlgorithm;
+import org.apache.shardingsphere.encrypt.api.encrypt.like.LikeEncryptAlgorithm;
+import
org.apache.shardingsphere.encrypt.api.encrypt.standard.StandardEncryptAlgorithm;
import
org.apache.shardingsphere.encrypt.rewrite.token.pojo.EncryptAlterTableToken;
import org.apache.shardingsphere.encrypt.rule.EncryptColumn;
import org.apache.shardingsphere.encrypt.rule.EncryptColumnItem;
@@ -79,16 +82,17 @@ class EncryptAlterTableTokenGeneratorTest {
}
private EncryptColumn mockEncryptColumn() {
- EncryptColumn result = new EncryptColumn("certificate_number", new
EncryptColumnItem("cipher_certificate_number", "test"));
- result.setAssistedQuery(new
EncryptColumnItem("assisted_certificate_number", "assisted_encryptor"));
- result.setLikeQuery(new EncryptColumnItem("like_certificate_number",
"like_encryptor"));
+ EncryptColumn result = new EncryptColumn("certificate_number", new
EncryptColumnItem<StandardEncryptAlgorithm<?, ?>>("cipher_certificate_number",
mock(StandardEncryptAlgorithm.class)));
+ result.setAssistedQuery(new
EncryptColumnItem<AssistedEncryptAlgorithm<?,
?>>("assisted_certificate_number", mock(AssistedEncryptAlgorithm.class)));
+ result.setLikeQuery(new EncryptColumnItem<LikeEncryptAlgorithm<?,
?>>("like_certificate_number", mock(LikeEncryptAlgorithm.class)));
return result;
}
private EncryptColumn mockNewEncryptColumn() {
- EncryptColumn result = new EncryptColumn("certificate_number_new", new
EncryptColumnItem("cipher_certificate_number_new", "test"));
- result.setAssistedQuery(new
EncryptColumnItem("assisted_certificate_number_new", "assisted_encryptor"));
- result.setLikeQuery(new
EncryptColumnItem("like_certificate_number_new", "like_encryptor"));
+ EncryptColumn result = new EncryptColumn(
+ "certificate_number_new", new
EncryptColumnItem<StandardEncryptAlgorithm<?,
?>>("cipher_certificate_number_new", mock(StandardEncryptAlgorithm.class)));
+ result.setAssistedQuery(new
EncryptColumnItem<AssistedEncryptAlgorithm<?,
?>>("assisted_certificate_number_new", mock(AssistedEncryptAlgorithm.class)));
+ result.setLikeQuery(new EncryptColumnItem<LikeEncryptAlgorithm<?,
?>>("like_certificate_number_new", mock(LikeEncryptAlgorithm.class)));
return result;
}
diff --git
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptCreateTableTokenGeneratorTest.java
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptCreateTableTokenGeneratorTest.java
index 3f300318a63..a801fac7dd3 100644
---
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptCreateTableTokenGeneratorTest.java
+++
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptCreateTableTokenGeneratorTest.java
@@ -17,6 +17,9 @@
package org.apache.shardingsphere.encrypt.rewrite.token.generator;
+import
org.apache.shardingsphere.encrypt.api.encrypt.assisted.AssistedEncryptAlgorithm;
+import org.apache.shardingsphere.encrypt.api.encrypt.like.LikeEncryptAlgorithm;
+import
org.apache.shardingsphere.encrypt.api.encrypt.standard.StandardEncryptAlgorithm;
import org.apache.shardingsphere.encrypt.rule.EncryptColumn;
import org.apache.shardingsphere.encrypt.rule.EncryptColumnItem;
import org.apache.shardingsphere.encrypt.rule.EncryptRule;
@@ -71,9 +74,9 @@ class EncryptCreateTableTokenGeneratorTest {
}
private EncryptColumn mockEncryptColumn() {
- EncryptColumn result = new EncryptColumn("certificate_number", new
EncryptColumnItem("cipher_certificate_number", "test"));
- result.setAssistedQuery(new
EncryptColumnItem("assisted_certificate_number", "assisted_encryptor"));
- result.setLikeQuery(new EncryptColumnItem("like_certificate_number",
"like_encryptor"));
+ EncryptColumn result = new EncryptColumn("certificate_number", new
EncryptColumnItem<StandardEncryptAlgorithm<?, ?>>("cipher_certificate_number",
mock(StandardEncryptAlgorithm.class)));
+ result.setAssistedQuery(new
EncryptColumnItem<AssistedEncryptAlgorithm<?,
?>>("assisted_certificate_number", mock(AssistedEncryptAlgorithm.class)));
+ result.setLikeQuery(new EncryptColumnItem<LikeEncryptAlgorithm<?,
?>>("like_certificate_number", mock(LikeEncryptAlgorithm.class)));
return result;
}
diff --git
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rule/EncryptColumnTest.java
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rule/EncryptColumnTest.java
deleted file mode 100644
index 577c739356b..00000000000
---
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rule/EncryptColumnTest.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.encrypt.rule;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertTrue;
-
-class EncryptColumnTest {
-
- @Test
- void assertGetAssistedQueryColumn() {
- EncryptColumn encryptColumn = new EncryptColumn("logicColumn", new
EncryptColumnItem("cipherColumn", "encryptorName"));
- encryptColumn.setLikeQuery(new EncryptColumnItem("likeQueryColumn",
"like_encryptor"));
- encryptColumn.setAssistedQuery(new
EncryptColumnItem("assistedQueryColumn", "assisted_encryptor"));
- assertTrue(encryptColumn.getAssistedQuery().isPresent());
- }
-
- @Test
- void assertGetLikeQueryColumn() {
- EncryptColumn encryptColumn = new EncryptColumn("logicColumn", new
EncryptColumnItem("cipherColumn", "encryptorName"));
- encryptColumn.setAssistedQuery(new
EncryptColumnItem("assistedQueryColumn", "assisted_encryptor"));
- encryptColumn.setLikeQuery(new EncryptColumnItem("likeQueryColumn",
"like_encryptor"));
- assertTrue(encryptColumn.getLikeQuery().isPresent());
- }
-}
diff --git
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rule/EncryptTableTest.java
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rule/EncryptTableTest.java
index 39416e82134..c99c9b258f2 100644
---
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rule/EncryptTableTest.java
+++
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rule/EncryptTableTest.java
@@ -20,6 +20,7 @@ package org.apache.shardingsphere.encrypt.rule;
import
org.apache.shardingsphere.encrypt.api.config.rule.EncryptColumnItemRuleConfiguration;
import
org.apache.shardingsphere.encrypt.api.config.rule.EncryptColumnRuleConfiguration;
import
org.apache.shardingsphere.encrypt.api.config.rule.EncryptTableRuleConfiguration;
+import
org.apache.shardingsphere.encrypt.api.encrypt.standard.StandardEncryptAlgorithm;
import
org.apache.shardingsphere.encrypt.exception.metadata.EncryptLogicColumnNotFoundException;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -33,6 +34,7 @@ import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.mockito.Mockito.mock;
class EncryptTableTest {
@@ -43,17 +45,18 @@ class EncryptTableTest {
EncryptColumnRuleConfiguration columnRuleConfig = new
EncryptColumnRuleConfiguration("logicColumn", new
EncryptColumnItemRuleConfiguration("cipherColumn", "myEncryptor"));
columnRuleConfig.setAssistedQuery(new
EncryptColumnItemRuleConfiguration("assistedQueryColumn"));
columnRuleConfig.setLikeQuery(new
EncryptColumnItemRuleConfiguration("likeQueryColumn"));
- encryptTable = new EncryptTable(new
EncryptTableRuleConfiguration("t_encrypt",
Collections.singleton(columnRuleConfig)));
+ encryptTable = new EncryptTable(new
EncryptTableRuleConfiguration("t_encrypt",
+ Collections.singleton(columnRuleConfig)),
Collections.singletonMap("myEncryptor", mock(StandardEncryptAlgorithm.class)),
Collections.emptyMap(), Collections.emptyMap());
}
@Test
void assertFindEncryptorName() {
- assertTrue(encryptTable.findEncryptorName("logicColumn").isPresent());
+ assertTrue(encryptTable.findEncryptor("logicColumn").isPresent());
}
@Test
void assertNotFindEncryptorName() {
-
assertFalse(encryptTable.findEncryptorName("notExistLogicColumn").isPresent());
+
assertFalse(encryptTable.findEncryptor("notExistLogicColumn").isPresent());
}
@Test