From ce3d92247b1f1076d46f2fc36187f53c19b11709 Mon Sep 17 00:00:00 2001 From: huguanghan Date: Fri, 8 Nov 2024 17:33:15 +0800 Subject: [PATCH] =?UTF-8?q?Post=E8=AF=B7=E6=B1=82=E8=A7=A3=E5=AF=86?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DecryptingOncePerRequestFilter.java | 18 +-- .../interceptor/DecryptingRequestWrapper.java | 134 +++++++++--------- 2 files changed, 76 insertions(+), 76 deletions(-) diff --git a/das/src/main/java/com/das/common/interceptor/DecryptingOncePerRequestFilter.java b/das/src/main/java/com/das/common/interceptor/DecryptingOncePerRequestFilter.java index 8e26c447..da5a6da9 100644 --- a/das/src/main/java/com/das/common/interceptor/DecryptingOncePerRequestFilter.java +++ b/das/src/main/java/com/das/common/interceptor/DecryptingOncePerRequestFilter.java @@ -60,15 +60,15 @@ public class DecryptingOncePerRequestFilter extends OncePerRequestFilter { filterChain.doFilter(request, response); } - if (POST.matches(method) && StrUtil.isNotBlank(contentType) && contentType.contains(MediaType.MULTIPART_FORM_DATA_VALUE)){ - - String iv = request.getHeader(IV_ATTR_NAME); - // 包装请求以修改参数 - DecryptingRequestWrapper wrappedRequest = new DecryptingRequestWrapper(request,aesKey,iv); - filterChain.doFilter(wrappedRequest, response); - } else { - filterChain.doFilter(request, response); - } +// if (POST.matches(method) && StrUtil.isNotBlank(contentType) && contentType.contains(MediaType.MULTIPART_FORM_DATA_VALUE)){ +// +// String iv = request.getHeader(IV_ATTR_NAME); +// // 包装请求以修改参数 +// DecryptingRequestWrapper wrappedRequest = new DecryptingRequestWrapper(request,aesKey,iv); +// filterChain.doFilter(wrappedRequest, response); +// } else { +// filterChain.doFilter(request, response); +// } } private String readRequestBody(HttpServletRequest request) throws IOException { diff --git a/das/src/main/java/com/das/common/interceptor/DecryptingRequestWrapper.java b/das/src/main/java/com/das/common/interceptor/DecryptingRequestWrapper.java index c5288798..869d50b8 100644 --- a/das/src/main/java/com/das/common/interceptor/DecryptingRequestWrapper.java +++ b/das/src/main/java/com/das/common/interceptor/DecryptingRequestWrapper.java @@ -1,67 +1,67 @@ -package com.das.common.interceptor; - -import com.das.common.utils.AESUtil; -import jakarta.servlet.http.HttpServletRequest; -import jakarta.servlet.http.HttpServletRequestWrapper; - -import java.io.IOException; -import java.util.HashMap; -import java.util.Map; - -public class DecryptingRequestWrapper extends HttpServletRequestWrapper { - private final Map decryptedParameters = new HashMap<>(); - - public DecryptingRequestWrapper(HttpServletRequest request,String aeskey,String iv) throws IOException { - super(request); - - // 提取并解密参数,忽略文件部分 - request.getParameterMap().forEach((key, values) -> { - if (!isFileParameter(key)) { - String[] decryptedValues = new String[values.length]; - for (int i = 0; i < values.length; i++) { - decryptedValues[i] = decrypt(values[i],aeskey,iv); // 对每个值进行解密 - } - decryptedParameters.put(key, decryptedValues); - } - else { - decryptedParameters.put(key,values); - } - }); - } - - @Override - public String getParameter(String name) { - if (decryptedParameters.containsKey(name)) { - return decryptedParameters.get(name)[0]; - } - return super.getParameter(name); - } - - @Override - public String[] getParameterValues(String name) { - if (decryptedParameters.containsKey(name)) { - return decryptedParameters.get(name); - } - return super.getParameterValues(name); - } - - @Override - public Map getParameterMap() { - Map parameterMap = new HashMap<>(super.getParameterMap()); - parameterMap.putAll(decryptedParameters); - return parameterMap; - } - - // 解密 - private String decrypt(String value,String aeskey,String iv) { - // 解密 - return AESUtil.decrypt(aeskey, value, iv); - } - - //判断是否为文件参数 - private boolean isFileParameter(String key) { - // 实现用于判断 key 是否代表文件参数的逻辑 - // 比如通过检查命名约定或文件类型 - return key.equalsIgnoreCase("file"); - } -} +//package com.das.common.interceptor; +// +//import com.das.common.utils.AESUtil; +//import jakarta.servlet.http.HttpServletRequest; +//import jakarta.servlet.http.HttpServletRequestWrapper; +// +//import java.io.IOException; +//import java.util.HashMap; +//import java.util.Map; +// +//public class DecryptingRequestWrapper extends HttpServletRequestWrapper { +// private final Map decryptedParameters = new HashMap<>(); +// +// public DecryptingRequestWrapper(HttpServletRequest request,String aeskey,String iv) throws IOException { +// super(request); +// +// // 提取并解密参数,忽略文件部分 +// request.getParameterMap().forEach((key, values) -> { +// if (!isFileParameter(key)) { +// String[] decryptedValues = new String[values.length]; +// for (int i = 0; i < values.length; i++) { +// decryptedValues[i] = decrypt(values[i],aeskey,iv); // 对每个值进行解密 +// } +// decryptedParameters.put(key, decryptedValues); +// } +// else { +// decryptedParameters.put(key,values); +// } +// }); +// } +// +// @Override +// public String getParameter(String name) { +// if (decryptedParameters.containsKey(name)) { +// return decryptedParameters.get(name)[0]; +// } +// return super.getParameter(name); +// } +// +// @Override +// public String[] getParameterValues(String name) { +// if (decryptedParameters.containsKey(name)) { +// return decryptedParameters.get(name); +// } +// return super.getParameterValues(name); +// } +// +// @Override +// public Map getParameterMap() { +// Map parameterMap = new HashMap<>(super.getParameterMap()); +// parameterMap.putAll(decryptedParameters); +// return parameterMap; +// } +// +// // 解密 +// private String decrypt(String value,String aeskey,String iv) { +// // 解密 +// return AESUtil.decrypt(aeskey, value, iv); +// } +// +// //判断是否为文件参数 +// private boolean isFileParameter(String key) { +// // 实现用于判断 key 是否代表文件参数的逻辑 +// // 比如通过检查命名约定或文件类型 +// return key.equalsIgnoreCase("file"); +// } +//}