diff --git a/core/core-backend/src/main/resources/ehcache/ehcache.xml b/core/core-backend/src/main/resources/ehcache/ehcache.xml index e4226dd4d6..0615419cd1 100644 --- a/core/core-backend/src/main/resources/ehcache/ehcache.xml +++ b/core/core-backend/src/main/resources/ehcache/ehcache.xml @@ -102,6 +102,10 @@ java.lang.String java.lang.Object + + java.lang.String + java.lang.String + java.lang.String diff --git a/sdk/common/src/main/java/io/dataease/constant/CacheConstant.java b/sdk/common/src/main/java/io/dataease/constant/CacheConstant.java index d277b4f75b..5202b22702 100644 --- a/sdk/common/src/main/java/io/dataease/constant/CacheConstant.java +++ b/sdk/common/src/main/java/io/dataease/constant/CacheConstant.java @@ -9,6 +9,7 @@ public class CacheConstant { public static final String USER_BUSI_PERS_CACHE = "de_v2_user_busi_pers"; public static final String USER_BUSI_PERS_INTERACTIVE_CACHE = "de_v2_user_busi_pers_interactive"; public static final String USER_COMMUNITY_LANGUAGE = "de_v2_user_community_language"; + public static final String Symmetric_Key = "de_ds_symmetricKey"; } public static class RoleCacheConstant { diff --git a/sdk/common/src/main/java/io/dataease/utils/RsaUtils.java b/sdk/common/src/main/java/io/dataease/utils/RsaUtils.java index a5b111454e..12c2822f42 100644 --- a/sdk/common/src/main/java/io/dataease/utils/RsaUtils.java +++ b/sdk/common/src/main/java/io/dataease/utils/RsaUtils.java @@ -23,6 +23,8 @@ import java.security.spec.PKCS8EncodedKeySpec; import java.security.spec.X509EncodedKeySpec; import java.util.Base64; +import static io.dataease.constant.CacheConstant.UserCacheConstant.Symmetric_Key; + @Component public class RsaUtils { @@ -205,19 +207,19 @@ public class RsaUtils { private static final String ALGORITHM = "AES"; - public static String symmetricKey = null; + public static String symmetricKey = "symmetricKey"; private static final int KEY_SIZE = 128; public static String generateSymmetricKey() { try { - if (StringUtils.isEmpty(symmetricKey)) { + if (!CacheUtils.keyExist(Symmetric_Key, symmetricKey)) { KeyGenerator keyGenerator = KeyGenerator.getInstance(ALGORITHM); keyGenerator.init(KEY_SIZE, new SecureRandom()); SecretKey secretKey = keyGenerator.generateKey(); - symmetricKey = Base64.getEncoder().encodeToString(secretKey.getEncoded()); + CacheUtils.put(Symmetric_Key, symmetricKey, Base64.getEncoder().encodeToString(secretKey.getEncoded())); } - return symmetricKey; + return CacheUtils.get(Symmetric_Key, symmetricKey).toString(); } catch (Exception e) { throw new RuntimeException(e); }