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