Post请求解密修改
This commit is contained in:
parent
c0d34288e5
commit
67674ac6de
@ -56,19 +56,16 @@ public class DecryptingOncePerRequestFilter extends OncePerRequestFilter {
|
|||||||
// 使用自定义的请求包装器替换原始请求
|
// 使用自定义的请求包装器替换原始请求
|
||||||
filterChain.doFilter(wrapper, response);
|
filterChain.doFilter(wrapper, response);
|
||||||
}
|
}
|
||||||
} else {
|
} else 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);
|
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 {
|
private String readRequestBody(HttpServletRequest request) throws IOException {
|
||||||
|
@ -1,67 +1,67 @@
|
|||||||
//package com.das.common.interceptor;
|
package com.das.common.interceptor;
|
||||||
//
|
|
||||||
//import com.das.common.utils.AESUtil;
|
import com.das.common.utils.AESUtil;
|
||||||
//import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
//import jakarta.servlet.http.HttpServletRequestWrapper;
|
import jakarta.servlet.http.HttpServletRequestWrapper;
|
||||||
//
|
|
||||||
//import java.io.IOException;
|
import java.io.IOException;
|
||||||
//import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
//import java.util.Map;
|
import java.util.Map;
|
||||||
//
|
|
||||||
//public class DecryptingRequestWrapper extends HttpServletRequestWrapper {
|
public class DecryptingRequestWrapper extends HttpServletRequestWrapper {
|
||||||
// private final Map<String, String[]> decryptedParameters = new HashMap<>();
|
private final Map<String, String[]> decryptedParameters = new HashMap<>();
|
||||||
//
|
|
||||||
// public DecryptingRequestWrapper(HttpServletRequest request,String aeskey,String iv) throws IOException {
|
public DecryptingRequestWrapper(HttpServletRequest request,String aeskey,String iv) throws IOException {
|
||||||
// super(request);
|
super(request);
|
||||||
//
|
|
||||||
// // 提取并解密参数,忽略文件部分
|
// 提取并解密参数,忽略文件部分
|
||||||
// request.getParameterMap().forEach((key, values) -> {
|
request.getParameterMap().forEach((key, values) -> {
|
||||||
// if (!isFileParameter(key)) {
|
if (!isFileParameter(key)) {
|
||||||
// String[] decryptedValues = new String[values.length];
|
String[] decryptedValues = new String[values.length];
|
||||||
// for (int i = 0; i < values.length; i++) {
|
for (int i = 0; i < values.length; i++) {
|
||||||
// decryptedValues[i] = decrypt(values[i],aeskey,iv); // 对每个值进行解密
|
decryptedValues[i] = decrypt(values[i],aeskey,iv); // 对每个值进行解密
|
||||||
// }
|
}
|
||||||
// decryptedParameters.put(key, decryptedValues);
|
decryptedParameters.put(key, decryptedValues);
|
||||||
// }
|
}
|
||||||
// else {
|
else {
|
||||||
// decryptedParameters.put(key,values);
|
decryptedParameters.put(key,values);
|
||||||
// }
|
}
|
||||||
// });
|
});
|
||||||
// }
|
}
|
||||||
//
|
|
||||||
// @Override
|
@Override
|
||||||
// public String getParameter(String name) {
|
public String getParameter(String name) {
|
||||||
// if (decryptedParameters.containsKey(name)) {
|
if (decryptedParameters.containsKey(name)) {
|
||||||
// return decryptedParameters.get(name)[0];
|
return decryptedParameters.get(name)[0];
|
||||||
// }
|
}
|
||||||
// return super.getParameter(name);
|
return super.getParameter(name);
|
||||||
// }
|
}
|
||||||
//
|
|
||||||
// @Override
|
@Override
|
||||||
// public String[] getParameterValues(String name) {
|
public String[] getParameterValues(String name) {
|
||||||
// if (decryptedParameters.containsKey(name)) {
|
if (decryptedParameters.containsKey(name)) {
|
||||||
// return decryptedParameters.get(name);
|
return decryptedParameters.get(name);
|
||||||
// }
|
}
|
||||||
// return super.getParameterValues(name);
|
return super.getParameterValues(name);
|
||||||
// }
|
}
|
||||||
//
|
|
||||||
// @Override
|
@Override
|
||||||
// public Map<String, String[]> getParameterMap() {
|
public Map<String, String[]> getParameterMap() {
|
||||||
// Map<String, String[]> parameterMap = new HashMap<>(super.getParameterMap());
|
Map<String, String[]> parameterMap = new HashMap<>(super.getParameterMap());
|
||||||
// parameterMap.putAll(decryptedParameters);
|
parameterMap.putAll(decryptedParameters);
|
||||||
// return parameterMap;
|
return parameterMap;
|
||||||
// }
|
}
|
||||||
//
|
|
||||||
// // 解密
|
// 解密
|
||||||
// private String decrypt(String value,String aeskey,String iv) {
|
private String decrypt(String value,String aeskey,String iv) {
|
||||||
// // 解密
|
// 解密
|
||||||
// return AESUtil.decrypt(aeskey, value, iv);
|
return AESUtil.decrypt(aeskey, value, iv);
|
||||||
// }
|
}
|
||||||
//
|
|
||||||
// //判断是否为文件参数
|
//判断是否为文件参数
|
||||||
// private boolean isFileParameter(String key) {
|
private boolean isFileParameter(String key) {
|
||||||
// // 实现用于判断 key 是否代表文件参数的逻辑
|
// 实现用于判断 key 是否代表文件参数的逻辑
|
||||||
// // 比如通过检查命名约定或文件类型
|
// 比如通过检查命名约定或文件类型
|
||||||
// return key.equalsIgnoreCase("file");
|
return key.equalsIgnoreCase("file");
|
||||||
// }
|
}
|
||||||
//}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user