From af08632c37b10c0927cf3fb9c75fac0d3a58b9f1 Mon Sep 17 00:00:00 2001
From: 疯狂的狮子Li <15040126243@163.com>
Date: 星期一, 10 七月 2023 18:20:05 +0800
Subject: [PATCH] add 新增 请求加密传输 合并优化 !pr377

---
 ruoyi-common/ruoyi-common-encrypt/src/main/java/org/dromara/common/encrypt/filter/DecryptRequestBodyWrapper.java |   31 +++++++++++--------------------
 1 files changed, 11 insertions(+), 20 deletions(-)

diff --git a/ruoyi-common/ruoyi-common-cryptapi/src/main/java/org/dromara/cryptapi/filter/DecryptRequestBodyWrapper.java b/ruoyi-common/ruoyi-common-encrypt/src/main/java/org/dromara/common/encrypt/filter/DecryptRequestBodyWrapper.java
similarity index 65%
rename from ruoyi-common/ruoyi-common-cryptapi/src/main/java/org/dromara/cryptapi/filter/DecryptRequestBodyWrapper.java
rename to ruoyi-common/ruoyi-common-encrypt/src/main/java/org/dromara/common/encrypt/filter/DecryptRequestBodyWrapper.java
index 8d014c8..fa9a310 100644
--- a/ruoyi-common/ruoyi-common-cryptapi/src/main/java/org/dromara/cryptapi/filter/DecryptRequestBodyWrapper.java
+++ b/ruoyi-common/ruoyi-common-encrypt/src/main/java/org/dromara/common/encrypt/filter/DecryptRequestBodyWrapper.java
@@ -1,18 +1,12 @@
-package org.dromara.cryptapi.filter;
+package org.dromara.common.encrypt.filter;
 
-import cn.hutool.core.codec.Base64;
 import cn.hutool.core.io.IoUtil;
 import jakarta.servlet.ReadListener;
 import jakarta.servlet.ServletInputStream;
 import jakarta.servlet.http.HttpServletRequest;
 import jakarta.servlet.http.HttpServletRequestWrapper;
 import org.dromara.common.core.constant.Constants;
-import org.dromara.common.core.exception.base.BaseException;
-import org.dromara.common.core.utils.StringUtils;
-import org.dromara.cryptapi.core.AesEncryptor;
-import org.dromara.cryptapi.core.EncryptContext;
-import org.dromara.cryptapi.core.RsaEncryptor;
-import org.dromara.cryptapi.enums.EncodeType;
+import org.dromara.common.encrypt.utils.EncryptUtils;
 import org.springframework.http.MediaType;
 
 import java.io.BufferedReader;
@@ -30,21 +24,18 @@
 
     private final byte[] body;
 
-    public DecryptRequestBodyWrapper(HttpServletRequest request, RsaEncryptor rsaEncryptor, String headerFlag) throws IOException {
+    public DecryptRequestBodyWrapper(HttpServletRequest request, String publicKey, String privateKey, String headerFlag) throws IOException {
         super(request);
-        String requestRsa = request.getHeader(headerFlag);
-        if (StringUtils.isEmpty(requestRsa)) {
-            throw new BaseException("鍔犲瘑AES鐨勫姩鎬佸瘑鐮佷笉鑳戒负绌�");
-        }
-        String decryptAes = new String(Base64.decode(rsaEncryptor.decrypt(requestRsa)));
+        // 鑾峰彇 AES 瀵嗙爜 閲囩敤 RSA 鍔犲瘑
+        String headerRsa = request.getHeader(headerFlag);
+        String decryptAes = EncryptUtils.decryptByRsa(headerRsa, privateKey);
+        // 瑙e瘑 AES 瀵嗙爜
+        String aesPassword = EncryptUtils.decryptByBase64(decryptAes);
         request.setCharacterEncoding(Constants.UTF8);
         byte[] readBytes = IoUtil.readBytes(request.getInputStream(), false);
-        String requestBody = StringUtils.toEncodedString(readBytes, StandardCharsets.UTF_8);
-        EncryptContext encryptContext = new EncryptContext();
-        encryptContext.setPassword(decryptAes);
-        encryptContext.setEncode(EncodeType.BASE64);
-        AesEncryptor aesEncryptor = new AesEncryptor(encryptContext);
-        String decryptBody = aesEncryptor.decrypt(requestBody);
+        String requestBody = new String(readBytes, StandardCharsets.UTF_8);
+        // 瑙e瘑 body 閲囩敤 AES 鍔犲瘑
+        String decryptBody = EncryptUtils.decryptByAes(requestBody, aesPassword);
         body = decryptBody.getBytes(StandardCharsets.UTF_8);
     }
 

--
Gitblit v1.9.3