From 750a323b3533abc7794304821e6de37fb91695f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Fri, 20 Sep 2024 15:17:42 +0800 Subject: [PATCH] 'commit' --- .../com/dsideal/gw/Handler/RouterHandler.java | 58 +++++++++++++------ 1 file changed, 40 insertions(+), 18 deletions(-) diff --git a/ds-gw/src/main/java/com/dsideal/gw/Handler/RouterHandler.java b/ds-gw/src/main/java/com/dsideal/gw/Handler/RouterHandler.java index 43b9382a..bd471799 100644 --- a/ds-gw/src/main/java/com/dsideal/gw/Handler/RouterHandler.java +++ b/ds-gw/src/main/java/com/dsideal/gw/Handler/RouterHandler.java @@ -4,15 +4,13 @@ import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.dsideal.gw.GwApplication; import com.jfinal.handler.Handler; -import com.jfinal.upload.UploadFile; import okhttp3.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import java.io.File; -import java.io.IOException; +import javax.servlet.http.Part; +import java.io.*; import java.util.Enumeration; -import java.util.List; public class RouterHandler extends Handler { @@ -39,11 +37,11 @@ public class RouterHandler extends Handler { /** * 测试用例: * GET - * http://10.10.21.20:8000/ds-base/dm/getDmSchoolProperty - * http://10.10.21.20:8000/ds-base/global/getGlobalList?page=1&limit=10 + * http://10.10.21.20:8000/dsBase/dm/getDmSchoolProperty + * http://10.10.21.20:8000/dsBase/global/getGlobalList?page=1&limit=10 *
* POST
- * http://10.10.21.20:8000/ds-base/global/testPost?a=100
+ * http://10.10.21.20:8000/dsBase/global/testPost?a=100
*/
//OkHttp的实例,单例模式
@@ -77,9 +75,20 @@ public class RouterHandler extends Handler {
return formBodyBuilder.build();
}
+ public static byte[] convertPartToByteArray(Part part) throws IOException {
+ InputStream input = part.getInputStream();
+ ByteArrayOutputStream output = new ByteArrayOutputStream();
+ byte[] buffer = new byte[1024];
+ int bytesRead;
+ while ((bytesRead = input.read(buffer)) != -1) {
+ output.write(buffer, 0, bytesRead);
+ }
+ output.flush();
+ return output.toByteArray();
+ }
+
@Override
public void handle(String target, HttpServletRequest req, HttpServletResponse res, boolean[] isHandled) {
-
//可以正确获取到URL的完整路径
String servletPath = req.getServletPath();
String queryString = req.getQueryString();
@@ -90,6 +99,7 @@ public class RouterHandler extends Handler {
}
//如果是白名单,不检查jwt,否则需要检查jwt
if (GwApplication.whiteSet.contains(servletPath)) {
+ // TODO
System.out.println("白名单内链接,不检查jwt!");
} else {
System.out.println("不包含在白名单内链接,检查jwt!");
@@ -111,7 +121,7 @@ public class RouterHandler extends Handler {
renderJson(res, jo);
} else {
//路由到哪个微服务
- String FORWARD_URL = GwApplication.routeList.get(prefix) + "/" + action;
+ String FORWARD_URL = GwApplication.routeList.get(prefix) + "/" + prefix + "/" + action;
//处理GET请求
if (req.getMethod().equals("GET")) {
//参数:queryString
@@ -150,24 +160,36 @@ public class RouterHandler extends Handler {
if (req.getContentType().startsWith("multipart/form-data")) {
// 指定文件类型
MediaType mediaType = MediaType.parse("multipart/form-data");
- // 创建RequestBody
- // 从JFinal请求中获取上传的文件
- List