From 96cc79f58632b1f89a56943eb9d557a50812bf36 Mon Sep 17 00:00:00 2001 From: superxp Date: Mon, 11 Jan 2021 21:43:45 -0500 Subject: [PATCH] =?UTF-8?q?fix:=20=E7=9B=AE=E5=BD=95=E9=81=8D=E5=8E=86?= =?UTF-8?q?=E6=BC=8F=E6=B4=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../server/config/web/HttpRequestHandler.java | 11 ++++- .../lanproxy/server/config/web/URLHelper.java | 42 +++++++++++++++++++ 2 files changed, 52 insertions(+), 1 deletion(-) create mode 100644 proxy-server/src/main/java/org/fengfei/lanproxy/server/config/web/URLHelper.java diff --git a/proxy-server/src/main/java/org/fengfei/lanproxy/server/config/web/HttpRequestHandler.java b/proxy-server/src/main/java/org/fengfei/lanproxy/server/config/web/HttpRequestHandler.java index d0c23e00..d133a8e3 100644 --- a/proxy-server/src/main/java/org/fengfei/lanproxy/server/config/web/HttpRequestHandler.java +++ b/proxy-server/src/main/java/org/fengfei/lanproxy/server/config/web/HttpRequestHandler.java @@ -4,7 +4,7 @@ import java.io.RandomAccessFile; import java.net.URI; import java.nio.charset.Charset; - +import java.util.Set; import org.fengfei.lanproxy.common.JsonUtil; import io.netty.buffer.Unpooled; @@ -34,6 +34,8 @@ public class HttpRequestHandler extends SimpleChannelInboundHandler urlSet = URLHelper.generateURLMap(null,PAGE_FOLDER,PAGE_FOLDER); + @Override protected void channelRead0(ChannelHandlerContext ctx, FullHttpRequest request) throws Exception { @@ -77,6 +79,8 @@ private void outputPages(ChannelHandlerContext ctx, FullHttpRequest request) thr URI uri = new URI(request.getUri()); String uriPath = uri.getPath(); uriPath = uriPath.equals("/") ? "/index.html" : uriPath; + urlSet.add("/lanproxy-config/"); + String path = PAGE_FOLDER + uriPath; File rfile = new File(path); if (rfile.isDirectory()) { @@ -93,6 +97,11 @@ private void outputPages(ChannelHandlerContext ctx, FullHttpRequest request) thr if (HttpHeaders.is100ContinueExpected(request)) { send100Continue(ctx); } + if(!urlSet.contains(uriPath)){ + status = HttpResponseStatus.NON_AUTHORITATIVE_INFORMATION; + outputContent(ctx, request, status.code(), status.toString(), "text/html"); + return; + } String mimeType = MimeType.getMimeType(MimeType.parseSuffix(path)); long length = 0; diff --git a/proxy-server/src/main/java/org/fengfei/lanproxy/server/config/web/URLHelper.java b/proxy-server/src/main/java/org/fengfei/lanproxy/server/config/web/URLHelper.java new file mode 100644 index 00000000..90400eb1 --- /dev/null +++ b/proxy-server/src/main/java/org/fengfei/lanproxy/server/config/web/URLHelper.java @@ -0,0 +1,42 @@ +package org.fengfei.lanproxy.server.config.web; + +import java.io.File; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** + * * @author necho.duan + * * @title: URLHandler + * * @projectName lanproxy + * * @description: + * * @date 2021/1/11 16:29 + * */ +public class URLHelper { + + public static Set generateURLMap(Set s, String rfloader, String folder){ + if(s==null){ + s=new HashSet(); + } + File file = new File(folder); + File[] t = file.listFiles(); + for(File sfile: t) + { + if(sfile.isFile()){ + s.add(sfile.getAbsolutePath().substring(sfile.getAbsolutePath().indexOf(rfloader)+rfloader.length()+1).replaceAll("\\\\","/")); + }else{ + generateURLMap(s,rfloader,sfile.getAbsolutePath()); + } + } + return s; + } + + + public static void main(String[] args) { + Set set = generateURLMap(null,"D:\\github_code\\lanproxy\\proxy-server\\webpages","D:\\github_code\\lanproxy\\proxy-server\\webpages"); + System.out.println(Arrays.toString(set.toArray())); + + } + + +}