Răsfoiți Sursa

修复数据加解密配置异常问题

woody 10 luni în urmă
părinte
comite
339a6ba19a

+ 11 - 5
framework-common/src/main/java/com/chelvc/framework/common/crypto/AESCipherFactory.java

@@ -3,6 +3,8 @@ package com.chelvc.framework.common.crypto;
 import javax.crypto.Cipher;
 
 import com.chelvc.framework.common.util.AESUtils;
+import com.chelvc.framework.common.util.AssertUtils;
+import com.chelvc.framework.common.util.ObjectUtils;
 import lombok.NonNull;
 
 /**
@@ -17,15 +19,15 @@ public class AESCipherFactory implements CipherFactory {
     private final String secret;
     private final String iv;
 
-    public AESCipherFactory(@NonNull String secret) {
-        this(secret, AESUtils.secret2iv(secret));
+    public AESCipherFactory(String secret) {
+        this(secret, ObjectUtils.ifNull(secret, AESUtils::secret2iv));
     }
 
-    public AESCipherFactory(@NonNull String secret, @NonNull String iv) {
+    public AESCipherFactory(String secret, String iv) {
         this(AESUtils.CBC_PKCS5PADDING, secret, iv);
     }
 
-    public AESCipherFactory(@NonNull String name, @NonNull String secret, @NonNull String iv) {
+    public AESCipherFactory(@NonNull String name, String secret, String iv) {
         this.key = name + secret;
         this.name = name;
         this.secret = secret;
@@ -39,6 +41,10 @@ public class AESCipherFactory implements CipherFactory {
 
     @Override
     public Cipher getCipher(int mode) {
-        return AESUtils.lookupCipher(this.key, mode, () -> AESUtils.getCipher(this.name, mode, this.secret, this.iv));
+        return AESUtils.lookupCipher(this.key, mode, () -> {
+            String secret = AssertUtils.nonempty(this.secret, () -> "Cipher secret is missing");
+            String iv = AssertUtils.nonempty(this.iv, () -> "Cipher iv is missing");
+            return AESUtils.getCipher(this.name, mode, secret, iv);
+        });
     }
 }

+ 0 - 2
framework-database/src/main/java/com/chelvc/framework/database/config/DatabaseConfigurer.java

@@ -32,7 +32,6 @@ import org.apache.ibatis.type.JdbcType;
 import org.apache.ibatis.type.TypeHandlerRegistry;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
@@ -118,7 +117,6 @@ public class DatabaseConfigurer {
 
     @Bean
     @ConditionalOnMissingBean(DatabaseCryptoContext.class)
-    @ConditionalOnProperty(prefix = "database.sensitive", value = "secret")
     public DatabaseCryptoContext databaseCryptoContext() {
         return new DefaultDatabaseCryptoContext(this.properties);
     }

+ 0 - 2
framework-security/src/main/java/com/chelvc/framework/security/config/SecurityConfigurer.java

@@ -22,7 +22,6 @@ import org.aopalliance.intercept.MethodInvocation;
 import org.springframework.beans.BeansException;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
 import org.springframework.boot.web.servlet.FilterRegistrationBean;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.ApplicationContextAware;
@@ -101,7 +100,6 @@ public class SecurityConfigurer extends GlobalMethodSecurityConfiguration implem
 
     @Bean
     @ConditionalOnMissingBean(SecurityCryptoContext.class)
-    @ConditionalOnProperty(prefix = "security", value = "secret")
     public SecurityCryptoContext securityCryptoContext() {
         return new DefaultSecurityCryptoContext(this.properties);
     }