This is an automated email from the ASF dual-hosted git repository.
totalo 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 d107597f76a Refactor EncryptRule (#26037)
d107597f76a is described below
commit d107597f76abc533693cf1585c4077b8d8fe664f
Author: Liang Zhang <[email protected]>
AuthorDate: Sun Jun 4 04:15:43 2023 +0800
Refactor EncryptRule (#26037)
---
.../user-manual/error-code/sql-error-code.cn.md | 7 +-
.../user-manual/error-code/sql-error-code.en.md | 7 +-
.../checker/EncryptRuleConfigurationChecker.java | 38 +++---
...=> MissingAssistedQueryEncryptorException.java} | 8 +-
...ception.java => MissingEncryptorException.java} | 8 +-
...ava => MissingLikeQueryEncryptorException.java} | 8 +-
...on.java => UnregisteredEncryptorException.java} | 10 +-
.../EncryptAssignmentParameterRewriter.java | 2 +-
.../EncryptPredicateParameterRewriter.java | 2 +-
.../generator/EncryptAssignmentTokenGenerator.java | 2 +-
.../EncryptInsertOnUpdateTokenGenerator.java | 2 +-
.../EncryptPredicateRightValueTokenGenerator.java | 2 +-
.../generator/InsertCipherNameTokenGenerator.java | 2 +-
.../shardingsphere/encrypt/rule/EncryptRule.java | 148 ++++++++++-----------
.../EncryptRuleConfigurationCheckerTest.java | 8 +-
.../EncryptInsertOnUpdateTokenGeneratorTest.java | 2 +-
.../encrypt/rule/EncryptRuleTest.java | 4 +-
.../proxy/backend/context/ProxyContextTest.java | 5 +-
18 files changed, 127 insertions(+), 138 deletions(-)
diff --git a/docs/document/content/user-manual/error-code/sql-error-code.cn.md
b/docs/document/content/user-manual/error-code/sql-error-code.cn.md
index dc7a9f70a2e..0fadca54c86 100644
--- a/docs/document/content/user-manual/error-code/sql-error-code.cn.md
+++ b/docs/document/content/user-manual/error-code/sql-error-code.cn.md
@@ -255,12 +255,13 @@ SQL 错误码以标准的 SQL State,Vendor Code 和详细错误信息提供,
| HY004 | 20780 | Encrypt algorithm \`%s\` initialization failed,
reason is: %s. |
| HY004 | 20781 | \`%s\` column's encryptor name \`%s\` does not
match encrypt algorithm type \`%s\`. |
| 44000 | 20703 | Cipher column of \`%s\` can not be null in
database \`%s\`. |
-| 44000 | 20704 | Encrypt column encryptor not found, reason is: %s.
|
+| 44000 | 20704 | Can not found encryptor in table \`%s\` and column
\`%s\`. |
| 44000 | 20705 | Assisted query column of \`%s\` can not be null in
database \`%s\`. |
-| 44000 | 20706 | Assisted query encryptor not found, reason is: %s.
|
+| 44000 | 20706 | Can not found assist query encryptor in table
\`%s\` and column \`%s\`. |
| 44000 | 20707 | Like query column of \`%s\` can not be null in
database \`%s\`. |
-| 44000 | 20708 | Encrypt like query encryptor not found, reason is:
%s. |
+| 44000 | 20708 | Can not found like query encryptor in table \`%s\`
and column \`%s\`. |
| 44000 | 20709 | Can not find encrypt table: \`%s\`.
|
+| 44000 | 20710 | Can not found registered encryptor \`%s\` in
database \`%s\`. |
### 影子库
diff --git a/docs/document/content/user-manual/error-code/sql-error-code.en.md
b/docs/document/content/user-manual/error-code/sql-error-code.en.md
index a047ef463e7..5f7a4d4aaa9 100644
--- a/docs/document/content/user-manual/error-code/sql-error-code.en.md
+++ b/docs/document/content/user-manual/error-code/sql-error-code.en.md
@@ -270,12 +270,13 @@ SQL error codes provide by standard `SQL State`, `Vendor
Code` and `Reason`, whi
| HY004 | 20780 | Encrypt algorithm \`%s\` initialization failed,
reason is: %s. |
| HY004 | 20781 | \`%s\` column's encryptor name \`%s\` does not
match encrypt algorithm type \`%s\`. |
| 44000 | 20703 | Cipher column of \`%s\` can not be null in
database \`%s\`. |
-| 44000 | 20704 | Encrypt column encryptor not found, reason is: %s.
|
+| 44000 | 20704 | Can not found encryptor in table \`%s\` and column
\`%s\`. |
| 44000 | 20705 | Assisted query column of \`%s\` can not be null in
database \`%s\`. |
-| 44000 | 20706 | Assisted query encryptor not found, reason is: %s.
|
+| 44000 | 20706 | Can not found assist query encryptor in table
\`%s\` and column \`%s\`. |
| 44000 | 20707 | Like query column of \`%s\` can not be null in
database \`%s\`. |
-| 44000 | 20708 | Encrypt like query encryptor not found, reason is:
%s. |
+| 44000 | 20708 | Can not found like query encryptor in table \`%s\`
and column \`%s\`. |
| 44000 | 20709 | Can not find encrypt table: \`%s\`.
|
+| 44000 | 20710 | Can not found registered encryptor \`%s\` in
database \`%s\`. |
### Shadow Database
diff --git
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/checker/EncryptRuleConfigurationChecker.java
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/checker/EncryptRuleConfigurationChecker.java
index cb9d666c9e0..75f4ea02d76 100644
---
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/checker/EncryptRuleConfigurationChecker.java
+++
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/checker/EncryptRuleConfigurationChecker.java
@@ -23,12 +23,13 @@ import
org.apache.shardingsphere.encrypt.api.config.rule.EncryptColumnItemRuleCo
import
org.apache.shardingsphere.encrypt.api.config.rule.EncryptColumnRuleConfiguration;
import
org.apache.shardingsphere.encrypt.api.config.rule.EncryptTableRuleConfiguration;
import org.apache.shardingsphere.encrypt.constant.EncryptOrder;
+import
org.apache.shardingsphere.encrypt.exception.metadata.MissingAssistedQueryEncryptorException;
import
org.apache.shardingsphere.encrypt.exception.metadata.EncryptAssistedQueryColumnNotFoundException;
-import
org.apache.shardingsphere.encrypt.exception.metadata.EncryptAssistedQueryEncryptorNotFoundException;
import
org.apache.shardingsphere.encrypt.exception.metadata.EncryptCipherColumnNotFoundException;
-import
org.apache.shardingsphere.encrypt.exception.metadata.EncryptEncryptorNotFoundException;
import
org.apache.shardingsphere.encrypt.exception.metadata.EncryptLikeQueryColumnNotFoundException;
-import
org.apache.shardingsphere.encrypt.exception.metadata.EncryptLikeQueryEncryptorNotFoundException;
+import
org.apache.shardingsphere.encrypt.exception.metadata.MissingLikeQueryEncryptorException;
+import
org.apache.shardingsphere.encrypt.exception.metadata.MissingEncryptorException;
+import
org.apache.shardingsphere.encrypt.exception.metadata.UnregisteredEncryptorException;
import org.apache.shardingsphere.infra.config.algorithm.AlgorithmConfiguration;
import
org.apache.shardingsphere.infra.config.rule.checker.RuleConfigurationChecker;
import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
@@ -56,37 +57,32 @@ public final class EncryptRuleConfigurationChecker
implements RuleConfigurationC
private void checkColumnConfiguration(final String databaseName, final
EncryptTableRuleConfiguration tableRuleConfig, final Map<String,
AlgorithmConfiguration> encryptors) {
for (EncryptColumnRuleConfiguration each :
tableRuleConfig.getColumns()) {
- checkCipherColumnConfiguration(databaseName, each.getCipher(),
each.getName(), encryptors);
- each.getAssistedQuery().ifPresent(optional ->
checkAssistColumnConfiguration(databaseName, optional, each.getName(),
encryptors));
- each.getLikeQuery().ifPresent(optional ->
checkLikeColumnConfiguration(databaseName, optional, each.getName(),
encryptors));
+ checkCipherColumnConfiguration(databaseName,
tableRuleConfig.getName(), each.getCipher(), each.getName(), encryptors);
+ each.getAssistedQuery().ifPresent(optional ->
checkAssistColumnConfiguration(databaseName, tableRuleConfig.getName(),
optional, each.getName(), encryptors));
+ each.getLikeQuery().ifPresent(optional ->
checkLikeColumnConfiguration(databaseName, tableRuleConfig.getName(), optional,
each.getName(), encryptors));
}
}
- private void checkCipherColumnConfiguration(final String databaseName,
final EncryptColumnItemRuleConfiguration cipherColumn, final String logicColumn,
+ private void checkCipherColumnConfiguration(final String databaseName,
final String tableName, final EncryptColumnItemRuleConfiguration cipherColumn,
final String logicColumn,
final Map<String,
AlgorithmConfiguration> encryptors) {
ShardingSpherePreconditions.checkState(!Strings.isNullOrEmpty(cipherColumn.getName()),
() -> new EncryptCipherColumnNotFoundException(logicColumn, databaseName));
-
ShardingSpherePreconditions.checkState(!Strings.isNullOrEmpty(cipherColumn.getEncryptorName()),
- () -> new
EncryptEncryptorNotFoundException(String.format("Encryptor name of `%s` can not
be null in database `%s`.", logicColumn, databaseName)));
-
ShardingSpherePreconditions.checkState(encryptors.containsKey(cipherColumn.getEncryptorName()),
- () -> new EncryptEncryptorNotFoundException(String.format("Can
not find encryptor `%s` in database `%s`.", cipherColumn.getEncryptorName(),
databaseName)));
+
ShardingSpherePreconditions.checkState(!Strings.isNullOrEmpty(cipherColumn.getEncryptorName()),
() -> new MissingEncryptorException(tableName, logicColumn));
+
ShardingSpherePreconditions.checkState(encryptors.containsKey(cipherColumn.getEncryptorName()),
() -> new UnregisteredEncryptorException(databaseName,
cipherColumn.getEncryptorName()));
}
- private void checkAssistColumnConfiguration(final String databaseName,
final EncryptColumnItemRuleConfiguration assistedQueryColumn, final String
logicColumn,
+ private void checkAssistColumnConfiguration(final String databaseName,
final String tableName, final EncryptColumnItemRuleConfiguration
assistedQueryColumn, final String logicColumn,
final Map<String,
AlgorithmConfiguration> encryptors) {
ShardingSpherePreconditions.checkState(!Strings.isNullOrEmpty(assistedQueryColumn.getName()),
() -> new EncryptAssistedQueryColumnNotFoundException(logicColumn,
databaseName));
-
ShardingSpherePreconditions.checkState(!Strings.isNullOrEmpty(assistedQueryColumn.getEncryptorName()),
() -> new EncryptAssistedQueryEncryptorNotFoundException(
- String.format("Assisted query encryptor name of `%s` can not
be null in database `%s`.", logicColumn, databaseName)));
-
ShardingSpherePreconditions.checkState(encryptors.containsKey(assistedQueryColumn.getEncryptorName()),
() -> new EncryptAssistedQueryEncryptorNotFoundException(
- String.format("Can not find assisted query encryptor `%s` in
database `%s`.", assistedQueryColumn.getEncryptorName(), databaseName)));
+
ShardingSpherePreconditions.checkState(!Strings.isNullOrEmpty(assistedQueryColumn.getEncryptorName()),
() -> new MissingAssistedQueryEncryptorException(tableName, logicColumn));
+ ShardingSpherePreconditions.checkState(
+
encryptors.containsKey(assistedQueryColumn.getEncryptorName()), () -> new
UnregisteredEncryptorException(databaseName,
assistedQueryColumn.getEncryptorName()));
}
- private void checkLikeColumnConfiguration(final String databaseName, final
EncryptColumnItemRuleConfiguration likeQueryColumn, final String logicColumn,
+ private void checkLikeColumnConfiguration(final String databaseName, final
String tableName, final EncryptColumnItemRuleConfiguration likeQueryColumn,
final String logicColumn,
final Map<String,
AlgorithmConfiguration> encryptors) {
ShardingSpherePreconditions.checkState(!Strings.isNullOrEmpty(likeQueryColumn.getName()),
() -> new EncryptLikeQueryColumnNotFoundException(logicColumn, databaseName));
-
ShardingSpherePreconditions.checkState(!Strings.isNullOrEmpty(likeQueryColumn.getEncryptorName()),
- () -> new
EncryptLikeQueryEncryptorNotFoundException(String.format("Like query encryptor
name of `%s` can not be null in database `%s`.", logicColumn, databaseName)));
-
ShardingSpherePreconditions.checkState(encryptors.containsKey(likeQueryColumn.getEncryptorName()),
- () -> new
EncryptLikeQueryEncryptorNotFoundException(String.format("Can not find like
query encryptor `%s` in database `%s`.", likeQueryColumn.getEncryptorName(),
databaseName)));
+
ShardingSpherePreconditions.checkState(!Strings.isNullOrEmpty(likeQueryColumn.getEncryptorName()),
() -> new MissingLikeQueryEncryptorException(tableName, logicColumn));
+
ShardingSpherePreconditions.checkState(encryptors.containsKey(likeQueryColumn.getEncryptorName()),
() -> new UnregisteredEncryptorException(databaseName,
likeQueryColumn.getEncryptorName()));
}
@Override
diff --git
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/EncryptAssistedQueryEncryptorNotFoundException.java
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/MissingAssistedQueryEncryptorException.java
similarity index 74%
rename from
features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/EncryptAssistedQueryEncryptorNotFoundException.java
rename to
features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/MissingAssistedQueryEncryptorException.java
index 0dfb7218f68..847ed508a46 100644
---
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/EncryptAssistedQueryEncryptorNotFoundException.java
+++
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/MissingAssistedQueryEncryptorException.java
@@ -21,13 +21,13 @@ import
org.apache.shardingsphere.encrypt.exception.EncryptSQLException;
import
org.apache.shardingsphere.infra.util.exception.external.sql.sqlstate.XOpenSQLState;
/**
- * Encrypt assisted query encryptor not found exception.
+ * Missing assisted query encryptor exception.
*/
-public final class EncryptAssistedQueryEncryptorNotFoundException extends
EncryptSQLException {
+public final class MissingAssistedQueryEncryptorException extends
EncryptSQLException {
private static final long serialVersionUID = -8700683634804933320L;
- public EncryptAssistedQueryEncryptorNotFoundException(final String reason)
{
- super(XOpenSQLState.CHECK_OPTION_VIOLATION, 6, "Assisted query
encryptor not found, reason is: %s.", reason);
+ public MissingAssistedQueryEncryptorException(final String tableName,
final String logicColumnName) {
+ super(XOpenSQLState.CHECK_OPTION_VIOLATION, 6, "Can not found assist
query encryptor in table `%s` and column `%s`.", tableName, logicColumnName);
}
}
diff --git
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/EncryptEncryptorNotFoundException.java
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/MissingEncryptorException.java
similarity index 76%
copy from
features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/EncryptEncryptorNotFoundException.java
copy to
features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/MissingEncryptorException.java
index 8443bab3992..810f7f28a95 100644
---
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/EncryptEncryptorNotFoundException.java
+++
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/MissingEncryptorException.java
@@ -21,13 +21,13 @@ import
org.apache.shardingsphere.encrypt.exception.EncryptSQLException;
import
org.apache.shardingsphere.infra.util.exception.external.sql.sqlstate.XOpenSQLState;
/**
- * Encrypt encryptor not found exception.
+ * Missing encryptor exception.
*/
-public final class EncryptEncryptorNotFoundException extends
EncryptSQLException {
+public final class MissingEncryptorException extends EncryptSQLException {
private static final long serialVersionUID = -4847495252826650747L;
- public EncryptEncryptorNotFoundException(final String reason) {
- super(XOpenSQLState.CHECK_OPTION_VIOLATION, 4, "Encrypt column
encryptor not found, reason is: %s.", reason);
+ public MissingEncryptorException(final String tableName, final String
logicColumnName) {
+ super(XOpenSQLState.CHECK_OPTION_VIOLATION, 4, "Can not found
encryptor in table `%s` and column `%s`.", tableName, logicColumnName);
}
}
diff --git
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/EncryptLikeQueryEncryptorNotFoundException.java
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/MissingLikeQueryEncryptorException.java
similarity index 74%
rename from
features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/EncryptLikeQueryEncryptorNotFoundException.java
rename to
features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/MissingLikeQueryEncryptorException.java
index 7a2e2a5bbbc..e4e5720db79 100644
---
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/EncryptLikeQueryEncryptorNotFoundException.java
+++
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/MissingLikeQueryEncryptorException.java
@@ -21,13 +21,13 @@ import
org.apache.shardingsphere.encrypt.exception.EncryptSQLException;
import
org.apache.shardingsphere.infra.util.exception.external.sql.sqlstate.XOpenSQLState;
/**
- * Encrypt like query encryptor not found exception.
+ * Missing like query encryptor exception.
*/
-public final class EncryptLikeQueryEncryptorNotFoundException extends
EncryptSQLException {
+public final class MissingLikeQueryEncryptorException extends
EncryptSQLException {
private static final long serialVersionUID = 1620586484949188815L;
- public EncryptLikeQueryEncryptorNotFoundException(final String reason) {
- super(XOpenSQLState.CHECK_OPTION_VIOLATION, 8, "Encrypt like query
encryptor not found, reason is: %s.", reason);
+ public MissingLikeQueryEncryptorException(final String tableName, final
String logicColumnName) {
+ super(XOpenSQLState.CHECK_OPTION_VIOLATION, 8, "Can not found like
query encryptor in table `%s` and column `%s`.", tableName, logicColumnName);
}
}
diff --git
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/EncryptEncryptorNotFoundException.java
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/UnregisteredEncryptorException.java
similarity index 70%
rename from
features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/EncryptEncryptorNotFoundException.java
rename to
features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/UnregisteredEncryptorException.java
index 8443bab3992..701274fbced 100644
---
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/EncryptEncryptorNotFoundException.java
+++
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/exception/metadata/UnregisteredEncryptorException.java
@@ -21,13 +21,13 @@ import
org.apache.shardingsphere.encrypt.exception.EncryptSQLException;
import
org.apache.shardingsphere.infra.util.exception.external.sql.sqlstate.XOpenSQLState;
/**
- * Encrypt encryptor not found exception.
+ * Unregistered encryptor exception.
*/
-public final class EncryptEncryptorNotFoundException extends
EncryptSQLException {
+public final class UnregisteredEncryptorException extends EncryptSQLException {
- private static final long serialVersionUID = -4847495252826650747L;
+ private static final long serialVersionUID = -1106379155485560944L;
- public EncryptEncryptorNotFoundException(final String reason) {
- super(XOpenSQLState.CHECK_OPTION_VIOLATION, 4, "Encrypt column
encryptor not found, reason is: %s.", reason);
+ public UnregisteredEncryptorException(final String databaseName, final
String encryptorName) {
+ super(XOpenSQLState.CHECK_OPTION_VIOLATION, 10, "Can not found
registered encryptor `%s` in database `%s`.", encryptorName, databaseName);
}
}
diff --git
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/parameter/rewriter/EncryptAssignmentParameterRewriter.java
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/parameter/rewriter/EncryptAssignmentParameterRewriter.java
index 400418a569b..92987469122 100644
---
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/parameter/rewriter/EncryptAssignmentParameterRewriter.java
+++
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/parameter/rewriter/EncryptAssignmentParameterRewriter.java
@@ -94,7 +94,7 @@ public final class EncryptAssignmentParameterRewriter
implements ParameterRewrit
String columnName =
assignmentSegment.getColumns().get(0).getIdentifier().getValue();
int parameterMarkerIndex = ((ParameterMarkerExpressionSegment)
assignmentSegment.getValue()).getParameterMarkerIndex();
Object originalValue = params.get(parameterMarkerIndex);
- Object cipherValue = encryptRule.getEncryptValues(databaseName,
schemaName, tableName, columnName,
Collections.singletonList(originalValue)).iterator().next();
+ Object cipherValue = encryptRule.encrypt(databaseName, schemaName,
tableName, columnName,
Collections.singletonList(originalValue)).iterator().next();
paramBuilder.addReplacedParameters(parameterMarkerIndex, cipherValue);
Collection<Object> addedParams = new LinkedList<>();
if (encryptRule.findAssistedQueryColumn(tableName,
columnName).isPresent()) {
diff --git
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/parameter/rewriter/EncryptPredicateParameterRewriter.java
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/parameter/rewriter/EncryptPredicateParameterRewriter.java
index e54febae1b5..60b2d46ef24 100644
---
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/parameter/rewriter/EncryptPredicateParameterRewriter.java
+++
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/parameter/rewriter/EncryptPredicateParameterRewriter.java
@@ -71,7 +71,7 @@ public final class EncryptPredicateParameterRewriter
implements ParameterRewrite
return encryptRule.findAssistedQueryColumn(tableName,
columnName).isPresent()
? encryptRule.getEncryptAssistedQueryValues(databaseName,
schemaName, tableName, columnName, originalValues)
- : encryptRule.getEncryptValues(databaseName, schemaName,
tableName, columnName, originalValues);
+ : encryptRule.encrypt(databaseName, schemaName, tableName,
columnName, originalValues);
}
private void encryptParameters(final ParameterBuilder paramBuilder, final
Map<Integer, Integer> positionIndexes, final List<Object> encryptValues) {
diff --git
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAssignmentTokenGenerator.java
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAssignmentTokenGenerator.java
index 3b322889b77..b6a87185ccf 100644
---
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAssignmentTokenGenerator.java
+++
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptAssignmentTokenGenerator.java
@@ -125,7 +125,7 @@ public final class EncryptAssignmentTokenGenerator
implements CollectionSQLToken
private void addCipherAssignment(final String schemaName, final String
tableName, final AssignmentSegment assignmentSegment, final
EncryptLiteralAssignmentToken token) {
Object originalValue = ((LiteralExpressionSegment)
assignmentSegment.getValue()).getLiterals();
- Object cipherValue = encryptRule.getEncryptValues(databaseName,
schemaName, tableName,
assignmentSegment.getColumns().get(0).getIdentifier().getValue(),
+ Object cipherValue = encryptRule.encrypt(databaseName, schemaName,
tableName, assignmentSegment.getColumns().get(0).getIdentifier().getValue(),
Collections.singletonList(originalValue)).iterator().next();
token.addAssignment(encryptRule.getCipherColumn(tableName,
assignmentSegment.getColumns().get(0).getIdentifier().getValue()), cipherValue);
}
diff --git
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptInsertOnUpdateTokenGenerator.java
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptInsertOnUpdateTokenGenerator.java
index 8eb6786eff5..1765feb3d74 100644
---
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptInsertOnUpdateTokenGenerator.java
+++
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptInsertOnUpdateTokenGenerator.java
@@ -170,7 +170,7 @@ public final class EncryptInsertOnUpdateTokenGenerator
implements CollectionSQLT
private void addCipherAssignment(final String schemaName, final String
tableName, final AssignmentSegment assignmentSegment, final
EncryptLiteralAssignmentToken token) {
Object originalValue = ((LiteralExpressionSegment)
assignmentSegment.getValue()).getLiterals();
- Object cipherValue = encryptRule.getEncryptValues(databaseName,
schemaName, tableName,
assignmentSegment.getColumns().get(0).getIdentifier().getValue(),
+ Object cipherValue = encryptRule.encrypt(databaseName, schemaName,
tableName, assignmentSegment.getColumns().get(0).getIdentifier().getValue(),
Collections.singletonList(originalValue)).iterator().next();
token.addAssignment(encryptRule.getCipherColumn(tableName,
assignmentSegment.getColumns().get(0).getIdentifier().getValue()), cipherValue);
}
diff --git
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptPredicateRightValueTokenGenerator.java
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptPredicateRightValueTokenGenerator.java
index 91a67f8fee1..4d6b45050c0 100644
---
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptPredicateRightValueTokenGenerator.java
+++
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/EncryptPredicateRightValueTokenGenerator.java
@@ -108,7 +108,7 @@ public final class EncryptPredicateRightValueTokenGenerator
Optional<String> assistedQueryColumn =
encryptRule.findAssistedQueryColumn(encryptCondition.getTableName(),
encryptCondition.getColumnName());
return assistedQueryColumn.isPresent()
? encryptRule.getEncryptAssistedQueryValues(databaseName,
schemaName, encryptCondition.getTableName(), encryptCondition.getColumnName(),
originalValues)
- : encryptRule.getEncryptValues(databaseName, schemaName,
encryptCondition.getTableName(), encryptCondition.getColumnName(),
originalValues);
+ : encryptRule.encrypt(databaseName, schemaName,
encryptCondition.getTableName(), encryptCondition.getColumnName(),
originalValues);
}
private Map<Integer, Object> getPositionValues(final Collection<Integer>
valuePositions, final List<Object> encryptValues) {
diff --git
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/InsertCipherNameTokenGenerator.java
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/InsertCipherNameTokenGenerator.java
index 09168492eb1..a473d7bbde2 100644
---
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/InsertCipherNameTokenGenerator.java
+++
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/generator/InsertCipherNameTokenGenerator.java
@@ -57,7 +57,7 @@ public final class InsertCipherNameTokenGenerator implements
CollectionSQLTokenG
public Collection<SQLToken> generateSQLTokens(final InsertStatementContext
insertStatementContext) {
Optional<InsertColumnsSegment> sqlSegment =
insertStatementContext.getSqlStatement().getInsertColumns();
Preconditions.checkState(sqlSegment.isPresent());
- Map<String, String> logicAndCipherColumns =
encryptRule.getLogicAndCipherColumns(insertStatementContext.getSqlStatement().getTable().getTableName().getIdentifier().getValue());
+ Map<String, String> logicAndCipherColumns =
encryptRule.getLogicAndCipherColumnsMap(insertStatementContext.getSqlStatement().getTable().getTableName().getIdentifier().getValue());
Collection<SQLToken> result = new LinkedList<>();
for (ColumnSegment each : sqlSegment.get().getColumns()) {
if
(logicAndCipherColumns.containsKey(each.getIdentifier().getValue())) {
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 8e436c8e828..3a38c25674e 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
@@ -17,6 +17,7 @@
package org.apache.shardingsphere.encrypt.rule;
+import com.google.common.base.Preconditions;
import lombok.Getter;
import
org.apache.shardingsphere.encrypt.api.config.CompatibleEncryptRuleConfiguration;
import org.apache.shardingsphere.encrypt.api.config.EncryptRuleConfiguration;
@@ -28,9 +29,9 @@ import
org.apache.shardingsphere.encrypt.api.encrypt.like.LikeEncryptAlgorithm;
import
org.apache.shardingsphere.encrypt.api.encrypt.standard.StandardEncryptAlgorithm;
import org.apache.shardingsphere.encrypt.context.EncryptContextBuilder;
import
org.apache.shardingsphere.encrypt.exception.algorithm.MismatchedEncryptAlgorithmTypeException;
-import
org.apache.shardingsphere.encrypt.exception.metadata.EncryptAssistedQueryEncryptorNotFoundException;
-import
org.apache.shardingsphere.encrypt.exception.metadata.EncryptEncryptorNotFoundException;
-import
org.apache.shardingsphere.encrypt.exception.metadata.EncryptLikeQueryEncryptorNotFoundException;
+import
org.apache.shardingsphere.encrypt.exception.metadata.MissingAssistedQueryEncryptorException;
+import
org.apache.shardingsphere.encrypt.exception.metadata.MissingEncryptorException;
+import
org.apache.shardingsphere.encrypt.exception.metadata.MissingLikeQueryEncryptorException;
import org.apache.shardingsphere.encrypt.spi.EncryptAlgorithm;
import org.apache.shardingsphere.infra.config.rule.RuleConfiguration;
import org.apache.shardingsphere.infra.rule.identifier.scope.DatabaseRule;
@@ -115,88 +116,82 @@ public final class EncryptRule implements DatabaseRule,
TableContainedRule, Colu
/**
* Find encrypt table.
*
- * @param logicTable logic table
+ * @param tableName table name
* @return encrypt table
*/
- public Optional<EncryptTable> findEncryptTable(final String logicTable) {
- return Optional.ofNullable(tables.get(logicTable.toLowerCase()));
+ public Optional<EncryptTable> findEncryptTable(final String tableName) {
+ return Optional.ofNullable(tables.get(tableName.toLowerCase()));
}
/**
* Find encrypt column.
*
- * @param logicTable logic table
- * @param columnName column name
+ * @param tableName table name
+ * @param logicColumnName logic column name
* @return encrypt column
*/
- public Optional<EncryptColumn> findEncryptColumn(final String logicTable,
final String columnName) {
- return findEncryptTable(logicTable).flatMap(optional ->
optional.findEncryptColumn(columnName));
+ public Optional<EncryptColumn> findEncryptColumn(final String tableName,
final String logicColumnName) {
+ return findEncryptTable(tableName).flatMap(optional ->
optional.findEncryptColumn(logicColumnName));
}
/**
* Find standard encryptor.
*
- * @param logicTable logic table name
- * @param logicColumn logic column name
+ * @param tableName table name
+ * @param logicColumnName logic column name
* @return standard encryptor
*/
@SuppressWarnings("rawtypes")
- public Optional<StandardEncryptAlgorithm> findStandardEncryptor(final
String logicTable, final String logicColumn) {
- String lowerCaseLogicTable = logicTable.toLowerCase();
- return tables.containsKey(lowerCaseLogicTable) ?
tables.get(lowerCaseLogicTable).findEncryptorName(logicColumn).map(standardEncryptors::get)
: Optional.empty();
+ public Optional<StandardEncryptAlgorithm> findStandardEncryptor(final
String tableName, final String logicColumnName) {
+ return findEncryptTable(tableName).flatMap(optional ->
optional.findEncryptorName(logicColumnName).map(standardEncryptors::get));
}
/**
* Find assisted encryptor.
*
- * @param logicTable logic table name
- * @param logicColumn logic column name
+ * @param tableName table name
+ * @param logicColumnName logic column name
* @return assisted encryptor
*/
@SuppressWarnings("rawtypes")
- public Optional<AssistedEncryptAlgorithm> findAssistedQueryEncryptor(final
String logicTable, final String logicColumn) {
- String lowerCaseLogicTable = logicTable.toLowerCase();
- return tables.containsKey(lowerCaseLogicTable) ?
tables.get(lowerCaseLogicTable).findAssistedQueryEncryptorName(logicColumn).map(assistedEncryptors::get)
: Optional.empty();
+ public Optional<AssistedEncryptAlgorithm> findAssistedQueryEncryptor(final
String tableName, final String logicColumnName) {
+ return findEncryptTable(tableName).flatMap(optional ->
optional.findAssistedQueryEncryptorName(logicColumnName).map(assistedEncryptors::get));
}
/**
* Find like query encryptor.
*
- * @param logicTable logic table name
- * @param logicColumn logic column name
+ * @param tableName table name
+ * @param logicColumnName logic column name
* @return like query encryptor
*/
@SuppressWarnings("rawtypes")
- public Optional<LikeEncryptAlgorithm> findLikeQueryEncryptor(final String
logicTable, final String logicColumn) {
- String lowerCaseLogicTable = logicTable.toLowerCase();
- return tables.containsKey(lowerCaseLogicTable) ?
tables.get(lowerCaseLogicTable).findLikeQueryEncryptorName(logicColumn).map(likeEncryptors::get)
: Optional.empty();
+ public Optional<LikeEncryptAlgorithm> findLikeQueryEncryptor(final String
tableName, final String logicColumnName) {
+ return findEncryptTable(tableName).flatMap(optional ->
optional.findLikeQueryEncryptorName(logicColumnName).map(likeEncryptors::get));
}
/**
- * Get encrypt values.
+ * Encrypt.
*
* @param databaseName database name
* @param schemaName schema name
- * @param logicTable logic table
- * @param logicColumn logic column
+ * @param tableName table name
+ * @param logicColumnName logic column name
* @param originalValues original values
- * @return encrypt values
+ * @return encrypted values
*/
- public List<Object> getEncryptValues(final String databaseName, final
String schemaName, final String logicTable, final String logicColumn, final
List<Object> originalValues) {
+ public List<Object> encrypt(final String databaseName, final String
schemaName, final String tableName, final String logicColumnName, final
List<Object> originalValues) {
@SuppressWarnings("rawtypes")
- Optional<StandardEncryptAlgorithm> encryptor =
findStandardEncryptor(logicTable, logicColumn);
- EncryptContext encryptContext =
EncryptContextBuilder.build(databaseName, schemaName, logicTable, logicColumn);
- ShardingSpherePreconditions.checkState(encryptor.isPresent(),
- () -> new EncryptEncryptorNotFoundException(String.format("Can
not find StandardEncryptAlgorithm by %s.%s.", logicTable, logicColumn)));
- return getEncryptValues(encryptor.get(), originalValues,
encryptContext);
+ Optional<StandardEncryptAlgorithm> encryptor =
findStandardEncryptor(tableName, logicColumnName);
+ ShardingSpherePreconditions.checkState(encryptor.isPresent(), () ->
new MissingEncryptorException(tableName, logicColumnName));
+ return encrypt(encryptor.get(), originalValues,
EncryptContextBuilder.build(databaseName, schemaName, tableName,
logicColumnName));
}
@SuppressWarnings("unchecked")
- private List<Object> getEncryptValues(@SuppressWarnings("rawtypes") final
StandardEncryptAlgorithm encryptor, final List<Object> originalValues, final
EncryptContext encryptContext) {
+ private List<Object> encrypt(@SuppressWarnings("rawtypes") final
StandardEncryptAlgorithm encryptor, final List<Object> originalValues, final
EncryptContext context) {
List<Object> result = new LinkedList<>();
for (Object each : originalValues) {
- Object encryptValue = null == each ? null :
encryptor.encrypt(each, encryptContext);
- result.add(encryptValue);
+ result.add(null == each ? null : encryptor.encrypt(each, context));
}
return result;
}
@@ -204,57 +199,56 @@ public final class EncryptRule implements DatabaseRule,
TableContainedRule, Colu
/**
* Get cipher column.
*
- * @param logicTable logic table name
- * @param logicColumn logic column name
+ * @param tableName table name
+ * @param logicColumnName logic column name
* @return cipher column
*/
- public String getCipherColumn(final String logicTable, final String
logicColumn) {
- return
tables.get(logicTable.toLowerCase()).getCipherColumn(logicColumn);
+ public String getCipherColumn(final String tableName, final String
logicColumnName) {
+ Optional<EncryptTable> table = findEncryptTable(tableName);
+ Preconditions.checkState(table.isPresent());
+ return table.get().getCipherColumn(logicColumnName);
}
/**
- * Get logic and cipher columns.
+ * Get logic and cipher columns map.
*
- * @param logicTable logic table
- * @return logic and cipher columns
+ * @param tableName table name
+ * @return logic and cipher columns map
*/
- public Map<String, String> getLogicAndCipherColumns(final String
logicTable) {
- String lowerCaseLogicTable = logicTable.toLowerCase();
- return tables.containsKey(lowerCaseLogicTable) ?
tables.get(lowerCaseLogicTable).getLogicAndCipherColumns() :
Collections.emptyMap();
+ public Map<String, String> getLogicAndCipherColumnsMap(final String
tableName) {
+ return
findEncryptTable(tableName).map(EncryptTable::getLogicAndCipherColumns).orElse(Collections.emptyMap());
}
/**
* Find assisted query column.
*
- * @param logicTable logic table name
- * @param logicColumn column name
+ * @param tableName table name
+ * @param logicColumnName logic column name
* @return assisted query column
*/
- public Optional<String> findAssistedQueryColumn(final String logicTable,
final String logicColumn) {
- String lowerCaseLogicTable = logicTable.toLowerCase();
- return tables.containsKey(lowerCaseLogicTable) ?
tables.get(lowerCaseLogicTable).findAssistedQueryColumn(logicColumn) :
Optional.empty();
+ public Optional<String> findAssistedQueryColumn(final String tableName,
final String logicColumnName) {
+ return findEncryptTable(tableName).flatMap(optional ->
optional.findAssistedQueryColumn(logicColumnName));
}
/**
* Find like query column.
*
- * @param logicTable logic table name
- * @param logicColumn column name
+ * @param tableName table name
+ * @param logicColumnName logic column name
* @return like query column
*/
- public Optional<String> findLikeQueryColumn(final String logicTable, final
String logicColumn) {
- String lowerCaseLogicTable = logicTable.toLowerCase();
- return tables.containsKey(lowerCaseLogicTable) ?
tables.get(lowerCaseLogicTable).findLikeQueryColumn(logicColumn) :
Optional.empty();
+ public Optional<String> findLikeQueryColumn(final String tableName, final
String logicColumnName) {
+ return findEncryptTable(tableName).flatMap(optional ->
optional.findLikeQueryColumn(logicColumnName));
}
/**
* Get assisted query columns.
*
- * @param logicTable logic table
+ * @param tableName table name
* @return assisted query columns
*/
- public Collection<String> getAssistedQueryColumns(final String logicTable)
{
- return tables.containsKey(logicTable.toLowerCase()) ?
tables.get(logicTable.toLowerCase()).getAssistedQueryColumns() :
Collections.emptyList();
+ public Collection<String> getAssistedQueryColumns(final String tableName) {
+ return
findEncryptTable(tableName).map(EncryptTable::getAssistedQueryColumns).orElse(Collections.emptyList());
}
/**
@@ -262,26 +256,24 @@ public final class EncryptRule implements DatabaseRule,
TableContainedRule, Colu
*
* @param databaseName database name
* @param schemaName schema name
- * @param logicTable logic table
- * @param logicColumn logic column
+ * @param tableName table name
+ * @param logicColumnName logic column name
* @param originalValues original values
* @return assisted query values
*/
- public List<Object> getEncryptAssistedQueryValues(final String
databaseName, final String schemaName, final String logicTable, final String
logicColumn, final List<Object> originalValues) {
+ public List<Object> getEncryptAssistedQueryValues(final String
databaseName, final String schemaName, final String tableName, final String
logicColumnName, final List<Object> originalValues) {
@SuppressWarnings("rawtypes")
- Optional<AssistedEncryptAlgorithm> assistedQueryEncryptor =
findAssistedQueryEncryptor(logicTable, logicColumn);
- EncryptContext encryptContext =
EncryptContextBuilder.build(databaseName, schemaName, logicTable, logicColumn);
-
ShardingSpherePreconditions.checkState(assistedQueryEncryptor.isPresent(),
- () -> new
EncryptAssistedQueryEncryptorNotFoundException(String.format("Can not find
assisted encryptor by %s.%s.", logicTable, logicColumn)));
- return getEncryptAssistedQueryValues(assistedQueryEncryptor.get(),
originalValues, encryptContext);
+ Optional<AssistedEncryptAlgorithm> assistedQueryEncryptor =
findAssistedQueryEncryptor(tableName, logicColumnName);
+
ShardingSpherePreconditions.checkState(assistedQueryEncryptor.isPresent(), ()
-> new MissingAssistedQueryEncryptorException(tableName, logicColumnName));
+ return getEncryptAssistedQueryValues(assistedQueryEncryptor.get(),
originalValues, EncryptContextBuilder.build(databaseName, schemaName,
tableName, logicColumnName));
}
@SuppressWarnings("unchecked")
private List<Object>
getEncryptAssistedQueryValues(@SuppressWarnings("rawtypes") final
AssistedEncryptAlgorithm assistedQueryEncryptor,
- final List<Object>
originalValues, final EncryptContext encryptContext) {
+ final List<Object>
originalValues, final EncryptContext context) {
List<Object> result = new LinkedList<>();
for (Object each : originalValues) {
- result.add(null == each ? null :
assistedQueryEncryptor.encrypt(each, encryptContext));
+ result.add(null == each ? null :
assistedQueryEncryptor.encrypt(each, context));
}
return result;
}
@@ -291,18 +283,16 @@ public final class EncryptRule implements DatabaseRule,
TableContainedRule, Colu
*
* @param databaseName database name
* @param schemaName schema name
- * @param logicTable logic table
- * @param logicColumn logic column
+ * @param tableName table name
+ * @param logicColumnName logic column name
* @param originalValues original values
* @return like query values
*/
- public List<Object> getEncryptLikeQueryValues(final String databaseName,
final String schemaName, final String logicTable, final String logicColumn,
final List<Object> originalValues) {
+ public List<Object> getEncryptLikeQueryValues(final String databaseName,
final String schemaName, final String tableName, final String logicColumnName,
final List<Object> originalValues) {
@SuppressWarnings("rawtypes")
- Optional<LikeEncryptAlgorithm> likeQueryEncryptor =
findLikeQueryEncryptor(logicTable, logicColumn);
- EncryptContext encryptContext =
EncryptContextBuilder.build(databaseName, schemaName, logicTable, logicColumn);
- ShardingSpherePreconditions.checkState(likeQueryEncryptor.isPresent(),
- () -> new
EncryptLikeQueryEncryptorNotFoundException(String.format("Can not find like
query encryptor by %s.%s.", logicTable, logicColumn)));
- return getEncryptLikeQueryValues(likeQueryEncryptor.get(),
originalValues, encryptContext);
+ Optional<LikeEncryptAlgorithm> likeQueryEncryptor =
findLikeQueryEncryptor(tableName, logicColumnName);
+ ShardingSpherePreconditions.checkState(likeQueryEncryptor.isPresent(),
() -> new MissingLikeQueryEncryptorException(tableName, logicColumnName));
+ return getEncryptLikeQueryValues(likeQueryEncryptor.get(),
originalValues, EncryptContextBuilder.build(databaseName, schemaName,
tableName, logicColumnName));
}
@SuppressWarnings("unchecked")
diff --git
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/checker/EncryptRuleConfigurationCheckerTest.java
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/checker/EncryptRuleConfigurationCheckerTest.java
index 6ed4de4b15c..b39369187af 100644
---
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/checker/EncryptRuleConfigurationCheckerTest.java
+++
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/checker/EncryptRuleConfigurationCheckerTest.java
@@ -21,7 +21,7 @@ import
org.apache.shardingsphere.encrypt.api.config.EncryptRuleConfiguration;
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.exception.metadata.EncryptEncryptorNotFoundException;
+import
org.apache.shardingsphere.encrypt.exception.metadata.UnregisteredEncryptorException;
import org.apache.shardingsphere.infra.config.algorithm.AlgorithmConfiguration;
import
org.apache.shardingsphere.infra.config.rule.checker.RuleConfigurationChecker;
import org.apache.shardingsphere.infra.util.spi.type.ordered.OrderedSPILoader;
@@ -58,7 +58,7 @@ class EncryptRuleConfigurationCheckerTest {
void assertCheckWhenConfigInvalidCipherColumn() {
EncryptRuleConfiguration config = createInvalidCipherColumnConfig();
RuleConfigurationChecker checker =
OrderedSPILoader.getServicesByClass(RuleConfigurationChecker.class,
Collections.singleton(config.getClass())).get(config.getClass());
- assertThrows(EncryptEncryptorNotFoundException.class, () ->
checker.check("test", config, Collections.emptyMap(), Collections.emptyList()));
+ assertThrows(UnregisteredEncryptorException.class, () ->
checker.check("test", config, Collections.emptyMap(), Collections.emptyList()));
}
private EncryptRuleConfiguration createInvalidCipherColumnConfig() {
@@ -75,7 +75,7 @@ class EncryptRuleConfigurationCheckerTest {
void assertCheckWhenConfigInvalidAssistColumn() {
EncryptRuleConfiguration config = createInvalidAssistColumnConfig();
RuleConfigurationChecker checker =
OrderedSPILoader.getServicesByClass(RuleConfigurationChecker.class,
Collections.singleton(config.getClass())).get(config.getClass());
- assertThrows(EncryptEncryptorNotFoundException.class, () ->
checker.check("test", config, Collections.emptyMap(), Collections.emptyList()));
+ assertThrows(UnregisteredEncryptorException.class, () ->
checker.check("test", config, Collections.emptyMap(), Collections.emptyList()));
}
private EncryptRuleConfiguration createInvalidAssistColumnConfig() {
@@ -93,7 +93,7 @@ class EncryptRuleConfigurationCheckerTest {
void assertCheckWhenConfigInvalidLikeColumn() {
EncryptRuleConfiguration config = createInvalidLikeColumnConfig();
RuleConfigurationChecker checker =
OrderedSPILoader.getServicesByClass(RuleConfigurationChecker.class,
Collections.singleton(config.getClass())).get(config.getClass());
- assertThrows(EncryptEncryptorNotFoundException.class, () ->
checker.check("test", config, Collections.emptyMap(), Collections.emptyList()));
+ assertThrows(UnregisteredEncryptorException.class, () ->
checker.check("test", config, Collections.emptyMap(), Collections.emptyList()));
}
private EncryptRuleConfiguration createInvalidLikeColumnConfig() {
diff --git
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/EncryptInsertOnUpdateTokenGeneratorTest.java
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/EncryptInsertOnUpdateTokenGeneratorTest.java
index caad90ae4e4..16b8e0eecc7 100644
---
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/EncryptInsertOnUpdateTokenGeneratorTest.java
+++
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rewrite/token/EncryptInsertOnUpdateTokenGeneratorTest.java
@@ -67,7 +67,7 @@ class EncryptInsertOnUpdateTokenGeneratorTest {
when(result.getCipherColumn("t_user",
"mobile")).thenReturn("cipher_mobile");
when(result.findStandardEncryptor("t_user",
"mobile")).thenReturn(Optional.of(mock(StandardEncryptAlgorithm.class)));
when(result.findStandardEncryptor("t_user",
"cipher_mobile")).thenReturn(Optional.of(mock(StandardEncryptAlgorithm.class)));
- when(result.getEncryptValues(null, "db_test", "t_user", "mobile",
Collections.singletonList(0))).thenReturn(Collections.singletonList("encryptValue"));
+ when(result.encrypt(null, "db_test", "t_user", "mobile",
Collections.singletonList(0))).thenReturn(Collections.singletonList("encryptValue"));
return result;
}
diff --git
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rule/EncryptRuleTest.java
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rule/EncryptRuleTest.java
index 055228dc9a7..3714e8b1c4f 100644
---
a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rule/EncryptRuleTest.java
+++
b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rule/EncryptRuleTest.java
@@ -67,7 +67,7 @@ class EncryptRuleTest {
@Test
void assertGetEncryptValues() {
List<Object> encryptAssistedQueryValues = new
EncryptRule(createEncryptRuleConfiguration())
- .getEncryptValues(DefaultDatabase.LOGIC_NAME,
DefaultDatabase.LOGIC_NAME, "t_encrypt", "pwd",
Collections.singletonList(null));
+ .encrypt(DefaultDatabase.LOGIC_NAME,
DefaultDatabase.LOGIC_NAME, "t_encrypt", "pwd",
Collections.singletonList(null));
for (Object each : encryptAssistedQueryValues) {
assertNull(each);
}
@@ -86,7 +86,7 @@ class EncryptRuleTest {
@Test
void assertGetLogicAndCipherColumns() {
- assertFalse(new
EncryptRule(createEncryptRuleConfiguration()).getLogicAndCipherColumns("t_encrypt").isEmpty());
+ assertFalse(new
EncryptRule(createEncryptRuleConfiguration()).getLogicAndCipherColumnsMap("t_encrypt").isEmpty());
}
@Test
diff --git
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/context/ProxyContextTest.java
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/context/ProxyContextTest.java
index 4bf1d0de487..5ac7fede1d0 100644
---
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/context/ProxyContextTest.java
+++
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/context/ProxyContextTest.java
@@ -134,8 +134,9 @@ class ProxyContextTest {
Map<String, ShardingSphereDatabase> result = new LinkedHashMap<>(10,
1F);
for (int i = 0; i < 10; i++) {
ShardingSphereDatabase database =
mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
- when(database.getName()).thenReturn(String.format(SCHEMA_PATTERN,
i));
- result.put(String.format(SCHEMA_PATTERN, i), database);
+ String databaseName = String.format(SCHEMA_PATTERN, i);
+ when(database.getName()).thenReturn(databaseName);
+ result.put(databaseName, database);
}
return result;
}