bug 修改
This commit is contained in:
parent
fb226e657a
commit
4e41066695
|
|
@ -168,19 +168,16 @@ public class AecDecryptParamFilter extends AbstractGatewayFilterFactory {
|
|||
* @param query 请求参数
|
||||
*/
|
||||
private void integrityVerification(String providedHmac, String query) {
|
||||
if (providedHmac == null) {
|
||||
/* if (providedHmac == null) {
|
||||
log.error("请求头中缺少 Params-Hash");
|
||||
throw new CaptchaException("请求参数不正确");
|
||||
}
|
||||
String encrypt = Sm3Util.encrypt(query);
|
||||
System.err.println(encrypt);
|
||||
System.err.println(query);
|
||||
System.err.println(providedHmac);
|
||||
log.debug("加密后的参数: {}", encrypt);
|
||||
log.debug("请求头中的 Params-Hash: {}", providedHmac);
|
||||
if (!encrypt.equals(providedHmac)) {
|
||||
log.error("参数校验失败");
|
||||
throw new CaptchaException("请求参数不正确");
|
||||
}
|
||||
}*/
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -39,9 +39,10 @@ import java.util.List;
|
|||
import java.util.Map;
|
||||
|
||||
/**
|
||||
*请求内容存储 处理请求内容 内容放在gatewayContext中
|
||||
* 请求内容存储 处理请求内容 内容放在gatewayContext中
|
||||
* 解决数据流被重复读取无数据的 问题
|
||||
* 对formData 数据进行解密
|
||||
*
|
||||
* @author bonus
|
||||
*/
|
||||
|
||||
|
|
@ -51,11 +52,11 @@ public class RequestCoverFilter implements GlobalFilter, Ordered {
|
|||
|
||||
@Value("${system.decryptEnabled}")
|
||||
public boolean decryptEnabled;
|
||||
public final static String APPLICATION_JSON_UTF8="application/json;charset=UTF-8";
|
||||
public final static String APPLICATION_JSON_UTF8 = "application/json;charset=UTF-8";
|
||||
/**
|
||||
* default HttpMessageReader
|
||||
*/
|
||||
private static final List<HttpMessageReader<?>> MESSAGE_READERS= HandlerStrategies.withDefaults().messageReaders();
|
||||
private static final List<HttpMessageReader<?>> MESSAGE_READERS = HandlerStrategies.withDefaults().messageReaders();
|
||||
|
||||
/**
|
||||
* ReadFormData
|
||||
|
|
@ -77,7 +78,7 @@ public class RequestCoverFilter implements GlobalFilter, Ordered {
|
|||
charset = charset == null ? StandardCharsets.UTF_8 : charset;
|
||||
String charsetName = charset.name();
|
||||
MultiValueMap<String, String> formData = gatewayContext.getFormData();
|
||||
MultiValueMap<String, String> formData2=new LinkedMultiValueMap<>();
|
||||
MultiValueMap<String, String> formData2 = new LinkedMultiValueMap<>();
|
||||
/**
|
||||
* formData is empty just return
|
||||
*/
|
||||
|
|
@ -85,25 +86,25 @@ public class RequestCoverFilter implements GlobalFilter, Ordered {
|
|||
return chain.filter(exchange);
|
||||
}
|
||||
//是否进行加密
|
||||
if(decryptEnabled){
|
||||
Object obj= formData.get(SystemGlobal.FORM_DATA);
|
||||
if(!ObjectUtils.isEmpty(obj)){
|
||||
String data= obj.toString();
|
||||
data=AesCbcUtils.decrypt(data);
|
||||
if(StringUtils.isEmpty(data)){
|
||||
if (decryptEnabled) {
|
||||
Object obj = formData.get(SystemGlobal.FORM_DATA);
|
||||
if (!ObjectUtils.isEmpty(obj)) {
|
||||
String data = obj.toString();
|
||||
data = AesCbcUtils.decrypt(data);
|
||||
if (StringUtils.isEmpty(data)) {
|
||||
return CommonConstant.buildResponse(exchange, HttpStatus.BAD_REQUEST.value(), "请输入正确的请求参数");
|
||||
}
|
||||
String[] params=data.split("&");
|
||||
String[] params = data.split("&");
|
||||
for (int i = 0; i < params.length; i++) {
|
||||
String[] param=params[i].split("=");
|
||||
formData2.add(param[0],param[1]);
|
||||
String[] param = params[i].split("=");
|
||||
formData2.add(param[0], param[1]);
|
||||
}
|
||||
formData=formData2;
|
||||
}else{
|
||||
formData = formData2;
|
||||
} else {
|
||||
//如果是空的 是否去除了加密
|
||||
ServerHttpRequest serverHttpRequest = exchange.getRequest();
|
||||
String head= serverHttpRequest.getHeaders().getFirst(SystemGlobal.KEY_DECRYPT);
|
||||
if(StringUtils.isNotEmpty(head) && !SystemGlobal.KEY_DECRYPT.equals(head)){
|
||||
String head = serverHttpRequest.getHeaders().getFirst(SystemGlobal.KEY_DECRYPT);
|
||||
if (StringUtils.isNotEmpty(head) && !SystemGlobal.KEY_DECRYPT.equals(head)) {
|
||||
return CommonConstant.buildResponse(exchange, HttpStatus.BAD_REQUEST.value(), "请输入正确的请求参数");
|
||||
}
|
||||
|
||||
|
|
@ -258,7 +259,7 @@ public class RequestCoverFilter implements GlobalFilter, Ordered {
|
|||
if (MediaType.APPLICATION_JSON.equals(contentType) || APPLICATION_JSON_UTF8.equals(contentType)) {
|
||||
return readBody(exchange, chain, gatewayContext);
|
||||
}
|
||||
if (MediaType.APPLICATION_FORM_URLENCODED.equals(contentType) || contentType.toString().contains(MediaType.APPLICATION_FORM_URLENCODED_VALUE) ) {
|
||||
if (MediaType.APPLICATION_FORM_URLENCODED.equals(contentType) || contentType.toString().contains(MediaType.APPLICATION_FORM_URLENCODED_VALUE)) {
|
||||
return readFormData(exchange, chain, gatewayContext);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue