Skip to content

Commit 917290e

Browse files
authored
Merge pull request apache#27 from SphereEx/5.5.2-pingan-bank-dev-hc
Add EncryptColumnItemType to EncryptContextBuilder for enhanced encry…
2 parents 4df4995 + f35c4a8 commit 917290e

File tree

6 files changed

+27
-10
lines changed

6 files changed

+27
-10
lines changed

features/encrypt/api/src/main/java/com/sphereex/dbplusengine/encrypt/context/EncryptContext.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717

1818
package com.sphereex.dbplusengine.encrypt.context;
1919

20+
import com.sphereex.dbplusengine.SphereEx;
21+
import com.sphereex.dbplusengine.infra.hint.EncryptColumnItemType;
2022
import lombok.Getter;
2123
import lombok.RequiredArgsConstructor;
2224
import lombok.Setter;
@@ -33,9 +35,15 @@ public final class EncryptContext {
3335

3436
private final DatabaseType databaseType;
3537

38+
@SphereEx
3639
@Setter
3740
private String aolianColumn;
3841

42+
@SphereEx
3943
@Setter
4044
private String dbid;
45+
46+
@SphereEx
47+
@Setter
48+
private EncryptColumnItemType encryptColumnItemType;
4149
}

features/encrypt/core/src/main/java/com/sphereex/dbplusengine/encrypt/context/EncryptContextBuilder.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
package com.sphereex.dbplusengine.encrypt.context;
1919

2020
import com.sphereex.dbplusengine.SphereEx;
21+
import com.sphereex.dbplusengine.infra.hint.EncryptColumnItemType;
2122
import lombok.AccessLevel;
2223
import lombok.NoArgsConstructor;
2324
import org.apache.shardingsphere.encrypt.rule.column.EncryptColumn;
@@ -34,12 +35,16 @@ public final class EncryptContextBuilder {
3435
*
3536
* @param column encrypt column
3637
* @param databaseType database type
38+
* @param encryptColumnItemType encrypt column item type
3739
* @return encrypt context
3840
*/
39-
public static EncryptContext build(final EncryptColumn column, @SphereEx final DatabaseType databaseType) {
41+
public static EncryptContext build(final EncryptColumn column, @SphereEx final DatabaseType databaseType, @SphereEx final EncryptColumnItemType encryptColumnItemType) {
4042
EncryptContext result = new EncryptContext(EncryptColumnDataTypeContextBuilder.build(column), databaseType);
43+
// SPEX ADDED: BEGIN
4144
column.getAolianColumn().ifPresent(result::setAolianColumn);
4245
column.getDbid().ifPresent(result::setDbid);
46+
result.setEncryptColumnItemType(encryptColumnItemType);
47+
// SPEX ADDED: END
4348
return result;
4449
}
4550
}

features/encrypt/core/src/main/java/com/sphereex/dbplusengine/encrypt/rule/column/item/OrderQueryColumnItem.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
import com.sphereex.dbplusengine.encrypt.context.EncryptContext;
2121
import com.sphereex.dbplusengine.encrypt.context.EncryptContextBuilder;
22+
import com.sphereex.dbplusengine.infra.hint.EncryptColumnItemType;
2223
import lombok.Getter;
2324
import lombok.RequiredArgsConstructor;
2425
import lombok.Setter;
@@ -69,7 +70,7 @@ public Object encrypt(final String databaseName, final String schemaName, final
6970
return null;
7071
}
7172
return encryptor.encrypt(originalValue, new AlgorithmSQLContext(databaseName, schemaName, tableName, logicColumnName),
72-
EncryptContextBuilder.build(encryptColumn, databaseType));
73+
EncryptContextBuilder.build(encryptColumn, databaseType, EncryptColumnItemType.ORDER_QUERY));
7374
}
7475

7576
/**
@@ -84,7 +85,7 @@ public Object encrypt(final String databaseName, final String schemaName, final
8485
*/
8586
public List<Object> encrypt(final String databaseName, final String schemaName, final String tableName, final String logicColumnName, final List<Object> originalValues) {
8687
AlgorithmSQLContext algorithmSQLContext = new AlgorithmSQLContext(databaseName, schemaName, tableName, logicColumnName);
87-
EncryptContext encryptContext = EncryptContextBuilder.build(encryptColumn, databaseType);
88+
EncryptContext encryptContext = EncryptContextBuilder.build(encryptColumn, databaseType, EncryptColumnItemType.ORDER_QUERY);
8889
List<Object> result = new LinkedList<>();
8990
for (Object each : originalValues) {
9091
result.add(null == each ? null : encryptor.encrypt(each, algorithmSQLContext, encryptContext));

features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rule/column/item/AssistedQueryColumnItem.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import com.sphereex.dbplusengine.SphereEx;
2121
import com.sphereex.dbplusengine.encrypt.context.EncryptContext;
2222
import com.sphereex.dbplusengine.encrypt.context.EncryptContextBuilder;
23+
import com.sphereex.dbplusengine.infra.hint.EncryptColumnItemType;
2324
import lombok.Getter;
2425
import lombok.RequiredArgsConstructor;
2526
import lombok.Setter;
@@ -81,7 +82,7 @@ public Object encrypt(final String databaseName, final String schemaName, final
8182
}
8283
return encryptor.encrypt(originalValue, new AlgorithmSQLContext(databaseName, schemaName, tableName, logicColumnName),
8384
// SPEX CHANGED: BEGIN
84-
EncryptContextBuilder.build(encryptColumn, databaseType));
85+
EncryptContextBuilder.build(encryptColumn, databaseType, EncryptColumnItemType.ASSISTED_QUERY));
8586
// SPEX CHANGED: END
8687
}
8788

@@ -98,7 +99,7 @@ public Object encrypt(final String databaseName, final String schemaName, final
9899
public List<Object> encrypt(final String databaseName, final String schemaName, final String tableName, final String logicColumnName, final List<Object> originalValues) {
99100
AlgorithmSQLContext algorithmSQLContext = new AlgorithmSQLContext(databaseName, schemaName, tableName, logicColumnName);
100101
// SPEX ADDED: BEGIN
101-
EncryptContext encryptContext = EncryptContextBuilder.build(encryptColumn, databaseType);
102+
EncryptContext encryptContext = EncryptContextBuilder.build(encryptColumn, databaseType, EncryptColumnItemType.ASSISTED_QUERY);
102103
// SPEX ADDED: END
103104
List<Object> result = new LinkedList<>();
104105
for (Object each : originalValues) {

features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rule/column/item/CipherColumnItem.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import com.sphereex.dbplusengine.encrypt.context.EncryptContext;
2424
import com.sphereex.dbplusengine.encrypt.context.EncryptContextBuilder;
2525
import com.sphereex.dbplusengine.infra.database.core.metadata.database.datatype.DataValueConverter;
26+
import com.sphereex.dbplusengine.infra.hint.EncryptColumnItemType;
2627
import lombok.Getter;
2728
import lombok.RequiredArgsConstructor;
2829
import lombok.Setter;
@@ -77,7 +78,7 @@ public Object encrypt(final String databaseName, final String schemaName, final
7778
}
7879
return encryptor.encrypt(originalValue, new AlgorithmSQLContext(databaseName, schemaName, tableName, logicColumnName),
7980
// SPEX CHANGED: BEGIN
80-
EncryptContextBuilder.build(encryptColumn, databaseType));
81+
EncryptContextBuilder.build(encryptColumn, databaseType, EncryptColumnItemType.CIPHER));
8182
// SPEX CHANGED: END
8283
}
8384

@@ -94,7 +95,7 @@ public Object encrypt(final String databaseName, final String schemaName, final
9495
public List<Object> encrypt(final String databaseName, final String schemaName, final String tableName, final String logicColumnName, final List<Object> originalValues) {
9596
AlgorithmSQLContext algorithmSQLContext = new AlgorithmSQLContext(databaseName, schemaName, tableName, logicColumnName);
9697
@SphereEx(Type.MODIFY)
97-
EncryptContext encryptContext = EncryptContextBuilder.build(encryptColumn, databaseType);
98+
EncryptContext encryptContext = EncryptContextBuilder.build(encryptColumn, databaseType, EncryptColumnItemType.CIPHER);
9899
List<Object> result = new LinkedList<>();
99100
for (Object each : originalValues) {
100101
result.add(null == each ? null : encryptor.encrypt(each, algorithmSQLContext, encryptContext));
@@ -119,7 +120,7 @@ public Object decrypt(final String databaseName, final String schemaName, final
119120
return null;
120121
}
121122
// SPEX CHANGED: BEGIN
122-
EncryptContext encryptContext = EncryptContextBuilder.build(encryptColumn, databaseType);
123+
EncryptContext encryptContext = EncryptContextBuilder.build(encryptColumn, databaseType, EncryptColumnItemType.CIPHER);
123124
// TODO if some algorithm need to handle original Clob, this should be changed
124125
Object convertedCipherValue = convertClobValueToString(cipherValue);
125126
return convertToOriginTypeIfNecessary(

features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rule/column/item/LikeQueryColumnItem.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import com.sphereex.dbplusengine.SphereEx;
2121
import com.sphereex.dbplusengine.encrypt.context.EncryptContext;
2222
import com.sphereex.dbplusengine.encrypt.context.EncryptContextBuilder;
23+
import com.sphereex.dbplusengine.infra.hint.EncryptColumnItemType;
2324
import lombok.Getter;
2425
import lombok.RequiredArgsConstructor;
2526
import lombok.Setter;
@@ -74,7 +75,7 @@ public Object encrypt(final String databaseName, final String schemaName, final
7475
}
7576
return encryptor.encrypt(originalValue, new AlgorithmSQLContext(databaseName, schemaName, tableName, logicColumnName),
7677
// SPEX CHANGED: BEGIN
77-
EncryptContextBuilder.build(encryptColumn, databaseType));
78+
EncryptContextBuilder.build(encryptColumn, databaseType, EncryptColumnItemType.LIKE_QUERY));
7879
// SPEX CHANGED: END
7980
}
8081

@@ -91,7 +92,7 @@ public Object encrypt(final String databaseName, final String schemaName, final
9192
public List<Object> encrypt(final String databaseName, final String schemaName, final String tableName, final String logicColumnName, final List<Object> originalValues) {
9293
AlgorithmSQLContext algorithmSQLContext = new AlgorithmSQLContext(databaseName, schemaName, tableName, logicColumnName);
9394
// SPEX ADDED: BEGIN
94-
EncryptContext encryptContext = EncryptContextBuilder.build(encryptColumn, databaseType);
95+
EncryptContext encryptContext = EncryptContextBuilder.build(encryptColumn, databaseType, EncryptColumnItemType.LIKE_QUERY);
9596
// SPEX ADDED: END
9697
List<Object> result = new LinkedList<>();
9798
for (Object each : originalValues) {

0 commit comments

Comments
 (0)