From 340ed663ca8d8d14f29dc958c0a50103955c879c Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期二, 18 七月 2023 14:44:29 +0800 Subject: [PATCH] 修改资源表的相关操作类 --- src/main/java/com/moon/server/helper/HttpHelper.java | 38 ++++++++++++++++++++++++-------------- 1 files changed, 24 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/moon/server/helper/HttpHelper.java b/src/main/java/com/moon/server/helper/HttpHelper.java index 2ee36e5..68e27cc 100644 --- a/src/main/java/com/moon/server/helper/HttpHelper.java +++ b/src/main/java/com/moon/server/helper/HttpHelper.java @@ -7,7 +7,6 @@ import org.apache.http.client.config.RequestConfig; import org.apache.http.client.utils.URIUtils; import org.apache.http.entity.InputStreamEntity; -import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.message.BasicHeader; @@ -22,7 +21,6 @@ import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.OutputStream; -import java.io.PrintWriter; import java.net.HttpCookie; import java.net.URI; import java.net.URISyntaxException; @@ -68,9 +66,7 @@ // copyRequestHeaders(request, proxyRequest, host); //setXrForwardedForHeader(request, proxyRequest); - //if (!StringHelper.isEmpty(cookie)) { - // proxyRequest.addHeader("Cookie", cookie + "; "); - //} + // if (!StringHelper.isEmpty(cookie)) proxyRequest.addHeader("Cookie", cookie + "; ") CloseableHttpClient client = null; HttpResponse proxyResponse = null; @@ -282,19 +278,33 @@ Header[] headers = proxyResponse.getHeaders("content-type"); if (null != headers && headers.length > 0 && headers[0].getValue().contains(StaticData.TEXT_XML)) { - String str = EntityUtils.toString(entity, "UTF-8"); - if (str.contains(res.getUrl())) { - String proxyUrl = res.getProxy().replace("{token}", response.getHeader("token")); - proxyUrl = request.getRequestURL().substring(0, request.getRequestURL().indexOf(proxyUrl) + proxyUrl.length()); - str = str.replace(res.getUrl(), proxyUrl); + String str = filterStr(request, response, res, EntityUtils.toString(entity, "UTF-8")); - byte[] bytes = str.getBytes(StandardCharsets.UTF_8); - response.setContentLength(bytes.length); - outputStream.write(bytes); - } + byte[] bytes = str.getBytes(StandardCharsets.UTF_8); + response.setContentLength(bytes.length); + outputStream.write(bytes); return; } entity.writeTo(outputStream); } + + private String filterStr(HttpServletRequest request, HttpServletResponse response, ResEntity res, String str) { + String url = res.getUrl(); + if (url.contains(StaticData.AK)) { + String[] strs = url.split("\\?"); + url = strs[0]; + + if (!StringHelper.isEmpty(strs[1])) { + str = str.replace("?" + strs[1], ""); + } + } + if (str.contains(url)) { + String proxyUrl = res.getProxy().replace("{token}", response.getHeader("token")); + proxyUrl = request.getRequestURL().substring(0, request.getRequestURL().indexOf(proxyUrl) + proxyUrl.length()); + str = str.replace(res.getUrl(), proxyUrl); + } + + return str; + } } -- Gitblit v1.9.3