Skip to content

Commit b6142ae

Browse files
author
weasley
committed
update configuration properties
1 parent 34e9e5e commit b6142ae

File tree

5 files changed

+40
-13
lines changed

5 files changed

+40
-13
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,3 +31,4 @@ build/
3131

3232
### VS Code ###
3333
.vscode/
34+
assets/

README.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,14 @@
11
# mybatis-encrypt-spring-boot-parent
2+
23
A spring-boot starter to encrypt and decrypt some column of database
4+
5+
Tips: For run test application I recommend you to set the correct path that you can get a cleanning project directory.
6+
7+
![image-20221220113810243](https://alphahub-test-bucket.oss-cn-shanghai.aliyuncs.com/image/image-20221220113810243.png)
8+
9+
## 1 Add dependences for your project pom.xml
10+
11+
12+
13+
14+

mybatis-encrypt-spring-boot-starter/src/main/java/io/github/weasleyj/mybatis/encrypt/config/MybatisEncryptConfiguration.java

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import java.util.concurrent.ConcurrentHashMap;
2525

2626
import static io.github.weasleyj.mybatis.encrypt.config.MybatisEncryptProperties.AesProperties;
27+
import static io.github.weasleyj.mybatis.encrypt.config.MybatisEncryptProperties.DiyProperties;
2728
import static io.github.weasleyj.mybatis.encrypt.constant.EncryptType.AES;
2829
import static io.github.weasleyj.mybatis.encrypt.constant.EncryptType.BASE64;
2930
import static io.github.weasleyj.mybatis.encrypt.constant.EncryptType.DIY;
@@ -39,32 +40,30 @@
3940
@Lazy(value = false)
4041
@ConditionalOnClass({SqlSessionFactory.class})
4142
@ConditionalOnBean(annotation = {EnableMybatisEncryption.class})
42-
@EnableConfigurationProperties({MybatisEncryptProperties.class, AesProperties.class})
4343
@ConfigurationPropertiesScan(basePackages = {"io.github.weasleyj.mybatis.encrypt.config"})
44+
@EnableConfigurationProperties({MybatisEncryptProperties.class, AesProperties.class, DiyProperties.class})
4445
public class MybatisEncryptConfiguration implements InitializingBean {
4546
/**
4647
* The clients of encrypt strategies
4748
*/
4849
public static final Map<EncryptType, EncryptStrategy> STRATEGIES_CLIENTS = new ConcurrentHashMap<>(6);
4950
private final Logger logger = LoggerFactory.getLogger(this.getClass());
51+
private final DiyProperties diyProperties;
5052
private final AesProperties aesProperties;
5153
/**
5254
* The list of 'SqlSessionFactory'
5355
*/
5456
private final List<SqlSessionFactory> sqlSessionFactories;
55-
private final MybatisEncryptProperties mybatisEncryptProperties;
5657
private final DefaultMybatisEncryptInterceptor defaultMybatisEncryptInterceptor;
5758

58-
public MybatisEncryptConfiguration(AesProperties aesProperties,
59-
List<SqlSessionFactory> sqlSessionFactories,
60-
MybatisEncryptProperties mybatisEncryptProperties,
61-
DefaultMybatisEncryptInterceptor defaultMybatisEncryptInterceptor) {
59+
public MybatisEncryptConfiguration(DiyProperties diyProperties, AesProperties aesProperties, List<SqlSessionFactory> sqlSessionFactories, DefaultMybatisEncryptInterceptor defaultMybatisEncryptInterceptor) {
60+
this.diyProperties = diyProperties;
6261
this.aesProperties = aesProperties;
6362
this.sqlSessionFactories = sqlSessionFactories;
64-
this.mybatisEncryptProperties = mybatisEncryptProperties;
6563
this.defaultMybatisEncryptInterceptor = defaultMybatisEncryptInterceptor;
6664
}
6765

66+
6867
@Override
6968
public void afterPropertiesSet() throws Exception {
7069
sqlSessionFactories.forEach(sqlSessionFactory -> {
@@ -73,8 +72,8 @@ public void afterPropertiesSet() throws Exception {
7372
configuration.addInterceptor(defaultMybatisEncryptInterceptor);
7473
}
7574
});
76-
if (null != mybatisEncryptProperties.getEncryptStrategy()) {
77-
STRATEGIES_CLIENTS.put(DIY, ClassUtils.newInstance(mybatisEncryptProperties.getEncryptStrategy()));
75+
if (null != diyProperties.getEncryptStrategy()) {
76+
STRATEGIES_CLIENTS.put(DIY, ClassUtils.newInstance(diyProperties.getEncryptStrategy()));
7877
}
7978
STRATEGIES_CLIENTS.put(BASE64, new DefaultBase64EncryptStrategyImpl());
8079
STRATEGIES_CLIENTS.put(AES, new DefaultAesEncryptStrategyImpl(aesProperties));

mybatis-encrypt-spring-boot-starter/src/main/java/io/github/weasleyj/mybatis/encrypt/config/MybatisEncryptProperties.java

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,6 @@ public class MybatisEncryptProperties {
3434
* @see EncryptType
3535
*/
3636
private EncryptType encryptType = BASE64;
37-
/**
38-
* Developer-defined encryption and decryption policies
39-
*/
40-
private Class<? extends EncryptStrategy> encryptStrategy = null;
4137

4238
/**
4339
* The configuration properties of AES
@@ -72,4 +68,18 @@ public String getSecretKey() {
7268
}
7369
}
7470

71+
/**
72+
* The configuration properties of user DIY encrypt strategy
73+
*/
74+
@Data
75+
@NoArgsConstructor
76+
@AllArgsConstructor
77+
@Accessors(chain = true)
78+
@ConfigurationProperties(prefix = PREFIX + ".diy")
79+
public static class DiyProperties {
80+
/**
81+
* Developer defines encryption and decryption policies
82+
*/
83+
private Class<? extends EncryptStrategy> encryptStrategy = null;
84+
}
7585
}

mybatis-encrypt-spring-boot-starter/src/main/java/io/github/weasleyj/mybatis/encrypt/constant/EncryptType.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package io.github.weasleyj.mybatis.encrypt.constant;
22

3+
import io.github.weasleyj.mybatis.encrypt.config.MybatisEncryptProperties;
34
import lombok.AllArgsConstructor;
45
import lombok.Getter;
56

@@ -14,6 +15,8 @@
1415
public enum EncryptType implements EncryptConstant {
1516
/**
1617
* Use AES for encryption and decryption
18+
*
19+
* @see MybatisEncryptProperties.AesProperties
1720
*/
1821
AES,
1922
/**
@@ -22,6 +25,8 @@ public enum EncryptType implements EncryptConstant {
2225
BASE64,
2326
/**
2427
* User defined encrypt strategy
28+
*
29+
* @see MybatisEncryptProperties.DiyProperties
2530
*/
2631
DIY
2732
}

0 commit comments

Comments
 (0)