main
黄海 11 months ago
parent b04943736a
commit 05dcaedfae

@ -60,5 +60,10 @@
<artifactId>log4j</artifactId>
<version>${log4j.version}</version>
</dependency>
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>${okhttp.version}</version>
</dependency>
</dependencies>
</project>

@ -0,0 +1,49 @@
package com.dsideal.gw.Index.Controller;
import com.jfinal.core.Controller;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import java.io.IOException;
public class ApiController extends Controller {
private OkHttpClient client = new OkHttpClient();
public void index() {
String path = getPara(); // 获取请求路径
String serviceUrl = route(path); // 根据路径决定转发到哪个微服务
if (serviceUrl == null) {
renderJson("error", "Service not found");
return;
}
try {
Request request = new Request.Builder()
.url(serviceUrl)
.header("Authorization", getHeader("Authorization"))
.build();
Response response = client.newCall(request).execute();
if (response.isSuccessful()) {
renderJson(response.body().string());
} else {
renderJson("error", "Service request failed");
}
} catch (IOException e) {
renderJson("error", "Exception occurred: " + e.getMessage());
}
}
private String route(String path) {
// 根据路径决定转发到哪个微服务
// 这里可以根据具体的路径或者配置文件来路由
if (path.startsWith("/service1")) {
return "http://localhost:8081" + path; // 微服务1的地址
} else if (path.startsWith("/service2")) {
return "http://localhost:8082" + path; // 微服务2的地址
}
return null;
}
}

@ -6,8 +6,5 @@ import com.jfinal.ext.interceptor.GET;
public class IndexController extends Controller {
@Before({GET.class})
public void index() {
renderText("Welcome to JFinal World!");
}
}

@ -0,0 +1,25 @@
package com.dsideal.gw.Interceptor;
import com.jfinal.aop.Interceptor;
import com.jfinal.aop.Invocation;
import com.jfinal.core.Controller;
public class AuthInterceptor implements Interceptor {
@Override
public void intercept(Invocation inv) {
Controller controller = inv.getController();
String token = controller.getHeader("Authorization");
// 这里添加你的鉴权逻辑,例如检查 token 是否有效
if (!isValidToken(token)) {
controller.renderJson("error", "Unauthorized");
} else {
inv.invoke();
}
}
private boolean isValidToken(String token) {
// 添加你的 token 验证逻辑
return "valid-token".equals(token);
}
}

@ -1,7 +1,9 @@
package com.dsideal.gw;
import cn.hutool.core.io.FileUtil;
import com.dsideal.gw.Index.Controller.ApiController;
import com.dsideal.gw.Index.Controller.IndexController;
import com.dsideal.gw.Interceptor.AuthInterceptor;
import com.dsideal.gw.Util.LogBackLogFactory;
import com.jfinal.config.*;
import com.jfinal.kit.PropKit;
@ -44,6 +46,7 @@ public class Start extends JFinalConfig {
public void configRoute(Routes me) {
//默认页面
me.add("/", IndexController.class);
me.add("/api", ApiController.class);
}
@Override
@ -62,7 +65,7 @@ public class Start extends JFinalConfig {
*/
@Override
public void configInterceptor(Interceptors me) {
me.addGlobalActionInterceptor(new AuthInterceptor());
}
/**

@ -57,5 +57,7 @@
<slf4j-api.version>1.7.36</slf4j-api.version>
<!--log4j版本号-->
<log4j.version>1.2.17</log4j.version>
<!--okhttp版本号-->
<okhttp.version>4.12.0</okhttp.version>
</properties>
</project>
Loading…
Cancel
Save