From fc282bdebc3f2f8fe47623c596813350c23d15d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Sat, 7 Sep 2024 10:20:32 +0800 Subject: [PATCH] 'commit' --- .../gw/Admin/Controller/LoginController.java | 2 +- .../gw/{Start.java => baseApplication.java} | 6 +- ds-base/src/main/resource/publishImage.json | 20 ----- ds-base/src/main/resource/undertow.properties | 2 +- .../gw/Controller/IndexController.java | 9 +++ .../gw/Interceptor/AuthInterceptor.java | 4 +- .../RuteInterceptor.java} | 81 +++++++++---------- .../gw/{Start.java => gwApplication.java} | 15 ++-- 8 files changed, 64 insertions(+), 75 deletions(-) rename ds-base/src/main/java/com/dsideal/gw/{Start.java => baseApplication.java} (94%) delete mode 100644 ds-base/src/main/resource/publishImage.json create mode 100644 ds-gw/src/main/java/com/dsideal/gw/Controller/IndexController.java rename ds-gw/src/main/java/com/dsideal/gw/{Controller/ApiController.java => Interceptor/RuteInterceptor.java} (60%) rename ds-gw/src/main/java/com/dsideal/gw/{Start.java => gwApplication.java} (81%) diff --git a/ds-base/src/main/java/com/dsideal/gw/Admin/Controller/LoginController.java b/ds-base/src/main/java/com/dsideal/gw/Admin/Controller/LoginController.java index 29ebfc0d..a1037dc5 100644 --- a/ds-base/src/main/java/com/dsideal/gw/Admin/Controller/LoginController.java +++ b/ds-base/src/main/java/com/dsideal/gw/Admin/Controller/LoginController.java @@ -12,7 +12,7 @@ public class LoginController extends Controller { /** - * 调用示例:http://10.10.21.20:9001/ds-base/login/helloWorld + * 调用示例:http://10.10.21.20:9001/base/login/helloWorld */ @Before({GET.class}) public void helloWorld() { diff --git a/ds-base/src/main/java/com/dsideal/gw/Start.java b/ds-base/src/main/java/com/dsideal/gw/baseApplication.java similarity index 94% rename from ds-base/src/main/java/com/dsideal/gw/Start.java rename to ds-base/src/main/java/com/dsideal/gw/baseApplication.java index c9bab7fa..7c67053c 100644 --- a/ds-base/src/main/java/com/dsideal/gw/Start.java +++ b/ds-base/src/main/java/com/dsideal/gw/baseApplication.java @@ -18,7 +18,7 @@ import com.jfinal.template.Engine; import java.io.File; -public class Start extends JFinalConfig { +public class baseApplication extends JFinalConfig { //配置文件 public static void main(String[] args) { @@ -33,7 +33,7 @@ public class Start extends JFinalConfig { } PropKit.use(configFile); - UndertowServer.create(Start.class, "undertow.properties").start(); + UndertowServer.create(baseApplication.class, "undertow.properties").start(); } /** @@ -200,7 +200,7 @@ public class Start extends JFinalConfig { @Override public void onStart() { //打印 启动Logo - String path = Start.class.getClassLoader().getResource("logo.txt").getPath(); + String path = baseApplication.class.getClassLoader().getResource("logo.txt").getPath(); File file = new File(path); System.out.println(FileUtil.readUtf8String(file)); } diff --git a/ds-base/src/main/resource/publishImage.json b/ds-base/src/main/resource/publishImage.json deleted file mode 100644 index 1bb4b89b..00000000 --- a/ds-base/src/main/resource/publishImage.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "host": "10.10.14.212", - "user": "root", - "pwd": "dsideal", - "port": 22, - "project": [ - { - "projectName": "gw-charge", - "workingPath": "D:/dsWork/YltProject/Ylt/gw-charge", - "remotePath": "/usr/local/gw-charge", - "localLibPath": "" - }, - { - "projectName": "zhu-que", - "workingPath": "D:/dsWork/YltProject/ZhuQue", - "remotePath": "/usr/local/zhu-que", - "localLibPath": "D:/dsWork/YltProject/ZhuQue/lib/" - } - ] -} diff --git a/ds-base/src/main/resource/undertow.properties b/ds-base/src/main/resource/undertow.properties index 5d08bf53..10f963e1 100644 --- a/ds-base/src/main/resource/undertow.properties +++ b/ds-base/src/main/resource/undertow.properties @@ -6,7 +6,7 @@ undertow.host=0.0.0.0 undertow.resourcePath=D:/dsWork/QingLong/WebRoot,classpath:static # 目录名称 -undertow.contextPath=/ds-base +undertow.contextPath=/base # 设定I/O线程数. server.undertow.io-threads=8 diff --git a/ds-gw/src/main/java/com/dsideal/gw/Controller/IndexController.java b/ds-gw/src/main/java/com/dsideal/gw/Controller/IndexController.java new file mode 100644 index 00000000..4a547e23 --- /dev/null +++ b/ds-gw/src/main/java/com/dsideal/gw/Controller/IndexController.java @@ -0,0 +1,9 @@ +package com.dsideal.gw.Controller; + +import com.jfinal.core.Controller; + +public class IndexController extends Controller { + public void index() { + renderText("Welcome to JFinal Gateway."); + } +} \ No newline at end of file diff --git a/ds-gw/src/main/java/com/dsideal/gw/Interceptor/AuthInterceptor.java b/ds-gw/src/main/java/com/dsideal/gw/Interceptor/AuthInterceptor.java index 0e8cf0a8..33629c2d 100644 --- a/ds-gw/src/main/java/com/dsideal/gw/Interceptor/AuthInterceptor.java +++ b/ds-gw/src/main/java/com/dsideal/gw/Interceptor/AuthInterceptor.java @@ -1,6 +1,6 @@ package com.dsideal.gw.Interceptor; -import com.dsideal.gw.Start; +import com.dsideal.gw.gwApplication; import com.jfinal.aop.Interceptor; import com.jfinal.aop.Invocation; import com.jfinal.core.Controller; @@ -13,7 +13,7 @@ public class AuthInterceptor implements Interceptor { private final List whitelist; public AuthInterceptor() { - Map jfinalConfig = (Map) Start.yamlConfig.get("jfinal"); + Map jfinalConfig = (Map) gwApplication.yamlConfig.get("jfinal"); whitelist = (List) jfinalConfig.get("whitelist"); } diff --git a/ds-gw/src/main/java/com/dsideal/gw/Controller/ApiController.java b/ds-gw/src/main/java/com/dsideal/gw/Interceptor/RuteInterceptor.java similarity index 60% rename from ds-gw/src/main/java/com/dsideal/gw/Controller/ApiController.java rename to ds-gw/src/main/java/com/dsideal/gw/Interceptor/RuteInterceptor.java index 9e550a47..711a637b 100644 --- a/ds-gw/src/main/java/com/dsideal/gw/Controller/ApiController.java +++ b/ds-gw/src/main/java/com/dsideal/gw/Interceptor/RuteInterceptor.java @@ -1,51 +1,67 @@ -package com.dsideal.gw.Controller; +package com.dsideal.gw.Interceptor; -import com.dsideal.gw.Start; +import com.dsideal.gw.gwApplication; +import com.jfinal.aop.Interceptor; +import com.jfinal.aop.Invocation; import com.jfinal.core.Controller; -import okhttp3.MediaType; -import okhttp3.OkHttpClient; -import okhttp3.Request; -import okhttp3.RequestBody; -import okhttp3.Response; +import okhttp3.*; import java.io.IOException; import java.util.List; import java.util.Map; -public class ApiController extends Controller { - +public class RuteInterceptor implements Interceptor { private final OkHttpClient client = new OkHttpClient(); private final List> routes; - public ApiController() { - Map jfinalConfig = (Map) Start.yamlConfig.get("jfinal"); + public RuteInterceptor() { + Map jfinalConfig = (Map) gwApplication.yamlConfig.get("jfinal"); routes = (List>) jfinalConfig.get("routes"); + } + /** + * 功能:路由 + * + * @param path + * @return + */ + private String route(String path) { + if (routes != null) { + for (Map route : routes) { + String prefix = route.get("prefix"); + if (path.startsWith(prefix)) { + return route.get("url") + path; + } + } + } + return null; } - public void index() { - String path = getRequest().getRequestURI(); // 获取请求路径 - if (path.equals("/")) { - renderText("Welcome to JFinal Gateway."); + @Override + public void intercept(Invocation inv) { + Controller controller = inv.getController(); + String path = controller.getRequest().getRequestURI(); + if(path.equals("/")){ + inv.invoke(); return; } String serviceUrl = route(path); // 根据路径决定转发到哪个微服务 if (serviceUrl == null) { - renderJson("error", "服务未找到"); + controller.renderJson("error", "服务未找到"); return; } try { //方法类型 - String method = getRequest().getMethod(); + String method = controller.getRequest().getMethod(); //传递jwt token Request.Builder requestBuilder = new Request.Builder() .url(serviceUrl) - .header("Authorization", getHeader("Authorization")); + .header("Authorization", controller.getHeader("Authorization")); if ("POST".equalsIgnoreCase(method)) { - String jsonPayload = getRawData(); // 获取请求体中的JSON数据 + String jsonPayload = controller.getRawData(); // 获取请求体中的JSON数据 MediaType JSON = MediaType.get("application/json; charset=utf-8"); RequestBody body = RequestBody.create(JSON, jsonPayload); requestBuilder.post(body); @@ -56,32 +72,15 @@ public class ApiController extends Controller { if (response.isSuccessful()) { if (response.body() != null) { - renderJson(response.body().string()); + controller.renderJson(response.body().string()); } } else { - renderJson("error", "服务请求失败"); + controller.renderJson("error", "服务请求失败"); + return; } } catch (IOException e) { - renderJson("error", "发生异常: " + e.getMessage()); + throw new RuntimeException(e); } - } - - - /** - * 功能:路由 - * - * @param path - * @return - */ - private String route(String path) { - if (routes != null) { - for (Map route : routes) { - String prefix = route.get("prefix"); - if (path.startsWith(prefix)) { - return route.get("url") + path; - } - } - } - return null; + inv.invoke(); } } \ No newline at end of file diff --git a/ds-gw/src/main/java/com/dsideal/gw/Start.java b/ds-gw/src/main/java/com/dsideal/gw/gwApplication.java similarity index 81% rename from ds-gw/src/main/java/com/dsideal/gw/Start.java rename to ds-gw/src/main/java/com/dsideal/gw/gwApplication.java index c128332c..a8d7d249 100644 --- a/ds-gw/src/main/java/com/dsideal/gw/Start.java +++ b/ds-gw/src/main/java/com/dsideal/gw/gwApplication.java @@ -1,8 +1,9 @@ package com.dsideal.gw; import cn.hutool.core.io.FileUtil; -import com.dsideal.gw.Controller.ApiController; +import com.dsideal.gw.Controller.IndexController; import com.dsideal.gw.Interceptor.AuthInterceptor; +import com.dsideal.gw.Interceptor.RuteInterceptor; import com.dsideal.gw.Util.LogBackLogFactory; import com.jfinal.config.*; import com.jfinal.server.undertow.UndertowServer; @@ -14,11 +15,11 @@ import java.util.Map; import org.yaml.snakeyaml.Yaml; -public class Start extends JFinalConfig { +public class gwApplication extends JFinalConfig { public static Map yamlConfig; //通过构造函数读取配置文件 - public Start() { + public gwApplication() { //配置文件 String configFile = "application_dev.yaml"; String myEnvVar = System.getenv("WORKING_ENV"); @@ -39,7 +40,7 @@ public class Start extends JFinalConfig { //配置文件 public static void main(String[] args) { - UndertowServer.create(Start.class, "undertow.properties").start(); + UndertowServer.create(gwApplication.class, "undertow.properties").start(); } /** @@ -61,8 +62,7 @@ public class Start extends JFinalConfig { */ @Override public void configRoute(Routes me) { - //默认页面 - me.add("/", ApiController.class); + me.add("/", IndexController.class); } @Override @@ -82,6 +82,7 @@ public class Start extends JFinalConfig { @Override public void configInterceptor(Interceptors me) { me.addGlobalActionInterceptor(new AuthInterceptor()); + me.addGlobalActionInterceptor(new RuteInterceptor()); } /** @@ -97,7 +98,7 @@ public class Start extends JFinalConfig { @Override public void onStart() { //打印 启动Logo - String path = Start.class.getClassLoader().getResource("logo.txt").getPath(); + String path = gwApplication.class.getClassLoader().getResource("logo.txt").getPath(); File file = new File(path); System.out.println(FileUtil.readUtf8String(file)); }