From 599f2cd4d1d180e44e5936f954046dbfd3b95d6c Mon Sep 17 00:00:00 2001 From: lijiarao Date: Fri, 17 Dec 2021 20:40:25 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E8=B0=83=E7=94=A8=E5=86=85=E9=83=A8?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=A2=9E=E5=8A=A0Header=20Referer?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jero/common/util/AuthenticationUtils.java | 37 ++++++++++--------- .../jero/config/filter/csrf/CsrfFilter.java | 4 +- .../service/impl/PayMailBillServiceImpl.java | 7 +--- 3 files changed, 22 insertions(+), 26 deletions(-) diff --git a/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/util/AuthenticationUtils.java b/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/util/AuthenticationUtils.java index 011c7497..00dfb14c 100644 --- a/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/util/AuthenticationUtils.java +++ b/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/util/AuthenticationUtils.java @@ -4,6 +4,8 @@ import cn.hutool.core.util.CharsetUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.crypto.asymmetric.KeyType; import cn.hutool.crypto.asymmetric.RSA; +import cn.hutool.http.Header; +import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpUtil; import com.alibaba.fastjson.JSONObject; import com.jero.common.exception.JeroBootException; @@ -141,7 +143,12 @@ public class AuthenticationUtils { if (StrUtil.isNotBlank(requestParam)){ urlBuilder.append(requestParam); } - String post = HttpUtil.post(urlBuilder.toString(), jsonString); + String post = HttpRequest.post(urlBuilder.toString()) + .header(Header.REFERER, urlBuilder.toString())//头信息,多个头信息多次调用此方法即可 + .form(jsonString)//表单内容 + .timeout(20000)//超时,毫秒 + .execute().body(); + //String post = HttpUtil.post(urlBuilder.toString(), jsonString); checkResult(post); } @@ -162,25 +169,15 @@ public class AuthenticationUtils { if (StrUtil.isNotBlank(requestParam)){ urlBuilder.append(requestParam); } - String post = HttpUtil.post(urlBuilder.toString(), jsonString); + String post = HttpRequest.post(urlBuilder.toString()) + .header(Header.REFERER, urlBuilder.toString())//头信息,多个头信息多次调用此方法即可 + .form(jsonString)//表单内容 + .timeout(20000)//超时,毫秒 + .execute().body(); + //String post = HttpUtil.post(urlBuilder.toString(), jsonString); return checkGetResult(post); } - /** - * 调用会员系统post接口 - * @param methodName - */ - public static void post(String methodName, HashMap paramMap) { - Map stringStringMap = encryptByRsaPriKey(); - paramMap.put("token", stringStringMap.get("token")); - paramMap.put("publicKey", stringStringMap.get("publicKey")); - //拼接url路径 - StringBuilder urlBuilder = new StringBuilder(AuthenticationUtils.URL); - urlBuilder.append(methodName); - String post = HttpUtil.post(urlBuilder.toString(), paramMap); - checkResult(post); - } - /** * 调用会员系统get接口 * @param methodName @@ -194,7 +191,11 @@ public class AuthenticationUtils { urlBuilder.append(methodName); urlBuilder.append("?"); paramMap.forEach((k,v) -> urlBuilder.append(k).append("=").append(v).append("&")); - String get = HttpUtil.get(urlBuilder.toString()); + String get = HttpRequest.get(urlBuilder.toString()) + .header(Header.REFERER, urlBuilder.toString())//头信息,多个头信息多次调用此方法即可 + .timeout(20000)//超时,毫秒 + .execute().body(); + //String get = HttpUtil.get(urlBuilder.toString()); checkResult(get); } } diff --git a/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/config/filter/csrf/CsrfFilter.java b/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/config/filter/csrf/CsrfFilter.java index c415af2a..749c7fc5 100644 --- a/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/config/filter/csrf/CsrfFilter.java +++ b/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/config/filter/csrf/CsrfFilter.java @@ -55,9 +55,9 @@ public class CsrfFilter implements Filter { // 获取来源 String referurl = req.getHeader("Referer"); // websocket 请求放过 - if(isWhiteReq(referurl) || url.contains("/websocket/")){ + if(isWhiteReq(referurl) || url.contains("/websocket/") || url.contains("token")){ chain.doFilter(request, response); - }else{ + } else { String log = ""; String date = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()); String ip = getIp(req); diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/mail/service/impl/PayMailBillServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/mail/service/impl/PayMailBillServiceImpl.java index 34d93b29..d7b0d115 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/mail/service/impl/PayMailBillServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/mail/service/impl/PayMailBillServiceImpl.java @@ -440,12 +440,7 @@ public class PayMailBillServiceImpl extends ServiceImpl stringStringMap = AuthenticationUtils.encryptByRsaPriKey(); - String publicKey = stringStringMap.get("publicKey"); - String token = stringStringMap.get("token"); - String jsonString1 = JSONObject.toJSONString(billingInfo); - String post = HttpUtil.post(AuthenticationUtils.URL + "/billingInfo/billingInfo/postFromPayment?publicKey=" + publicKey + "&pushToken=" + token, jsonString1); - AuthenticationUtils.checkResult(post); + AuthenticationUtils.post("/billingInfo/billingInfo/postFromPayment",null,billingInfo); } @Override