From ccaff60994e6fb5f367a26d56388edaeb1a432d4 Mon Sep 17 00:00:00 2001 From: 18idc <993143799@qq.com> Date: Fri, 4 Jun 2021 09:04:30 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=907.0.4=E3=80=91=E8=AF=B7=E6=B1=82?= =?UTF-8?q?=E5=93=8D=E5=BA=94=E5=8A=A0=E5=AF=86=E8=A7=A3=E5=AF=86=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=E6=9B=B4=E6=96=B0=E8=8E=B7=E5=8F=96RSA=E5=AE=9E?= =?UTF-8?q?=E4=BE=8B=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../advice/EncryptionRequestBodyAdvice.java | 3 +- .../encrypt/holder/EncryptionRsaHolder.java | 31 +++++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 kernel-d-security/security-sdk-request-encrypt-and-decode/src/main/java/cn/stylefeng/roses/kernel/security/request/encrypt/holder/EncryptionRsaHolder.java diff --git a/kernel-d-security/security-sdk-request-encrypt-and-decode/src/main/java/cn/stylefeng/roses/kernel/security/request/encrypt/advice/EncryptionRequestBodyAdvice.java b/kernel-d-security/security-sdk-request-encrypt-and-decode/src/main/java/cn/stylefeng/roses/kernel/security/request/encrypt/advice/EncryptionRequestBodyAdvice.java index 8dfef772c..7f95db0aa 100644 --- a/kernel-d-security/security-sdk-request-encrypt-and-decode/src/main/java/cn/stylefeng/roses/kernel/security/request/encrypt/advice/EncryptionRequestBodyAdvice.java +++ b/kernel-d-security/security-sdk-request-encrypt-and-decode/src/main/java/cn/stylefeng/roses/kernel/security/request/encrypt/advice/EncryptionRequestBodyAdvice.java @@ -18,6 +18,7 @@ import cn.stylefeng.roses.kernel.security.request.encrypt.constants.EncryptionCo import cn.stylefeng.roses.kernel.security.request.encrypt.exception.EncryptionException; import cn.stylefeng.roses.kernel.security.request.encrypt.exception.enums.EncryptionExceptionEnum; import cn.stylefeng.roses.kernel.security.request.encrypt.holder.EncryptionHolder; +import cn.stylefeng.roses.kernel.security.request.encrypt.holder.EncryptionRsaHolder; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; @@ -110,7 +111,7 @@ public class EncryptionRequestBodyAdvice implements RequestBodyAdvice { } // 使用私钥解密出返回加密数据的key和请求的内容 - RSA rsa = new RSA(EncryptionConstants.PRIVATE_KEY, EncryptionConstants.PUBLIC_KEY); + RSA rsa = EncryptionRsaHolder.getRsa(); // 先使用SM4解密出请求的json String objectString = jsonObject.getString("data"); diff --git a/kernel-d-security/security-sdk-request-encrypt-and-decode/src/main/java/cn/stylefeng/roses/kernel/security/request/encrypt/holder/EncryptionRsaHolder.java b/kernel-d-security/security-sdk-request-encrypt-and-decode/src/main/java/cn/stylefeng/roses/kernel/security/request/encrypt/holder/EncryptionRsaHolder.java new file mode 100644 index 000000000..2b6780fef --- /dev/null +++ b/kernel-d-security/security-sdk-request-encrypt-and-decode/src/main/java/cn/stylefeng/roses/kernel/security/request/encrypt/holder/EncryptionRsaHolder.java @@ -0,0 +1,31 @@ +package cn.stylefeng.roses.kernel.security.request.encrypt.holder; + +import cn.hutool.crypto.asymmetric.RSA; +import cn.stylefeng.roses.kernel.security.request.encrypt.constants.EncryptionConstants; + +/** + * 用于存储RSA实例 + * + * @author luojie + * @date 2021/6/4 08:58 + */ +public class EncryptionRsaHolder { + + private static final ThreadLocal RSA_HOLDER = new ThreadLocal() { + @Override + protected RSA initialValue() { + return new RSA(EncryptionConstants.PRIVATE_KEY, EncryptionConstants.PUBLIC_KEY); + } + }; + + /** + * 获取 RSA 实例 + * + * @author luojie + * @date 2021/6/4 08:59 + */ + public static RSA getRsa() { + return RSA_HOLDER.get(); + } + +}