diff --git a/.gitignore b/.gitignore index a45af58..0e39e99 100644 --- a/.gitignore +++ b/.gitignore @@ -39,3 +39,4 @@ gradlew.bat unused.txt /web-service/src/main/generated/ /db +/webroot/nfd-front/ diff --git a/core-database/src/main/java/cn/qaiu/db/pool/JDBCPoolInit.java b/core-database/src/main/java/cn/qaiu/db/pool/JDBCPoolInit.java index a82fac7..2fdbcb9 100644 --- a/core-database/src/main/java/cn/qaiu/db/pool/JDBCPoolInit.java +++ b/core-database/src/main/java/cn/qaiu/db/pool/JDBCPoolInit.java @@ -21,7 +21,7 @@ public class JDBCPoolInit { JsonObject dbConfig; Vertx vertx = VertxHolder.getVertxInstance(); String url; - private JDBCType type; + private final JDBCType type; private static JDBCPoolInit instance; @@ -64,22 +64,17 @@ public class JDBCPoolInit { * init h2db
* 这个方法只允许调用一次 */ - public void initPool() { + synchronized public void initPool() { if (pool != null) { LOGGER.error("pool 重复初始化"); return; } // 初始化数据库连接 - vertx.createSharedWorkerExecutor("sql-pool-init") - .executeBlocking(() -> { - // 初始化连接池 - pool = JDBCPool.pool(vertx, dbConfig); - CreateTable.createTable(pool, type); - return "数据库连接初始化: URL=" + url; - }) - .onSuccess(LOGGER::info) - .onFailure(Throwable::printStackTrace); + // 初始化连接池 + pool = JDBCPool.pool(vertx, dbConfig); + CreateTable.createTable(pool, type); + LOGGER.info("数据库连接初始化: URL=" + url); } /** @@ -87,7 +82,7 @@ public class JDBCPoolInit { * * @return pool */ - public JDBCPool getPool() { + synchronized public JDBCPool getPool() { return pool; } } diff --git a/core/src/main/java/cn/qaiu/vx/core/Deploy.java b/core/src/main/java/cn/qaiu/vx/core/Deploy.java index c25e5c3..352df8d 100644 --- a/core/src/main/java/cn/qaiu/vx/core/Deploy.java +++ b/core/src/main/java/cn/qaiu/vx/core/Deploy.java @@ -132,19 +132,23 @@ public final class Deploy { localMap.put(GLOBAL_CONFIG, globalConfig); localMap.put(CUSTOM_CONFIG, customConfig); localMap.put(SERVER, globalConfig.getJsonObject(SERVER)); - var future0 = vertx.createSharedWorkerExecutor("other-handle").executeBlocking(bch -> { - handle.handle(globalConfig); - bch.complete("other handle complete"); - }); + var future0 = vertx.createSharedWorkerExecutor("other-handle") + .executeBlocking(() -> { + handle.handle(globalConfig); + return "Other handle complete"; + }); - // 部署 路由、异步service、反向代理 服务 - var future1 = vertx.deployVerticle(RouterVerticle.class, getWorkDeploymentOptions("Router")); - var future2 = vertx.deployVerticle(ServiceVerticle.class, getWorkDeploymentOptions("Service")); - var future3 = vertx.deployVerticle(ReverseProxyVerticle.class, getWorkDeploymentOptions("proxy")); + future0.onSuccess(res -> { + LOGGER.info(res); + // 部署 路由、异步service、反向代理 服务 + var future1 = vertx.deployVerticle(RouterVerticle.class, getWorkDeploymentOptions("Router")); + var future2 = vertx.deployVerticle(ServiceVerticle.class, getWorkDeploymentOptions("Service")); + var future3 = vertx.deployVerticle(ReverseProxyVerticle.class, getWorkDeploymentOptions("proxy")); - CompositeFuture.all(future1, future2, future3, future0) - .onSuccess(this::deployWorkVerticalSuccess) - .onFailure(this::deployVerticalFailed); + Future.all(future1, future2, future3) + .onSuccess(this::deployWorkVerticalSuccess) + .onFailure(this::deployVerticalFailed); + }).onFailure(e -> LOGGER.error("Other handle error", e)); } /** diff --git a/core/src/main/java/cn/qaiu/vx/core/handlerfactory/RouterHandlerFactory.java b/core/src/main/java/cn/qaiu/vx/core/handlerfactory/RouterHandlerFactory.java index 5bc5de1..d7c1b23 100644 --- a/core/src/main/java/cn/qaiu/vx/core/handlerfactory/RouterHandlerFactory.java +++ b/core/src/main/java/cn/qaiu/vx/core/handlerfactory/RouterHandlerFactory.java @@ -38,6 +38,7 @@ import java.util.stream.Collectors; import java.util.stream.Stream; import static cn.qaiu.vx.core.util.ConfigConstant.ROUTE_TIME_OUT; +import static cn.qaiu.vx.core.verticle.ReverseProxyVerticle.REROUTE_PATH_PREFIX; import static io.vertx.core.http.HttpHeaders.*; import static java.time.format.DateTimeFormatter.ISO_LOCAL_DATE_TIME; @@ -72,20 +73,15 @@ public class RouterHandlerFactory implements BaseHttpApi { public Router createRouter() { // 主路由 Router mainRouter = Router.router(VertxHolder.getVertxInstance()); - - // 静态资源 - String path = SharedDataUtil.getJsonConfig("server") - .getString("staticResourcePath"); - if (!StringUtils.isEmpty(path)) { - // 静态资源 - mainRouter.route("/*").handler(StaticHandler - .create(path) - .setCachingEnabled(true) - .setDefaultContentEncoding("UTF-8")); - } - - mainRouter.route().handler(ctx -> { + String realPath = ctx.request().uri();; + if (realPath.startsWith(REROUTE_PATH_PREFIX)) { + // vertx web proxy暂不支持rewrite, 所以这里进行手动替换, 请求地址中的请求path前缀替换为originPath + String rePath = realPath.substring(REROUTE_PATH_PREFIX.length()); + ctx.reroute(rePath); + return; + } + LOGGER.debug("The HTTP service request address information ===>path:{}, uri:{}, method:{}", ctx.request().path(), ctx.request().absoluteURI(), ctx.request().method()); ctx.response().headers().add(ACCESS_CONTROL_ALLOW_ORIGIN, "*"); diff --git a/core/src/main/java/cn/qaiu/vx/core/verticle/ReverseProxyVerticle.java b/core/src/main/java/cn/qaiu/vx/core/verticle/ReverseProxyVerticle.java index e084ec0..8f35fcc 100644 --- a/core/src/main/java/cn/qaiu/vx/core/verticle/ReverseProxyVerticle.java +++ b/core/src/main/java/cn/qaiu/vx/core/verticle/ReverseProxyVerticle.java @@ -6,13 +6,13 @@ import io.vertx.core.Future; import io.vertx.core.Promise; import io.vertx.core.http.HttpClient; import io.vertx.core.http.HttpServer; -import io.vertx.core.http.WebSocket; +import io.vertx.core.http.HttpServerOptions; import io.vertx.core.json.JsonArray; import io.vertx.core.json.JsonObject; +import io.vertx.core.net.PemKeyCertOptions; +import io.vertx.ext.web.Route; import io.vertx.ext.web.Router; import io.vertx.ext.web.handler.StaticHandler; -import io.vertx.ext.web.handler.sockjs.SockJSHandler; -import io.vertx.ext.web.handler.sockjs.SockJSHandlerOptions; import io.vertx.ext.web.proxy.handler.ProxyHandler; import io.vertx.httpproxy.HttpProxy; import org.apache.commons.lang3.StringUtils; @@ -40,10 +40,12 @@ public class ReverseProxyVerticle extends AbstractVerticle { .getJsonConfig(ConfigConstant.GLOBAL_CONFIG) .getString("proxyConf"); private static final Future CONFIG = ConfigUtil.readYamlConfig(PATH_PROXY_CONFIG); - private static final String DEFAULT_PATH_404 = "webroot/err/404.html"; + private static final String DEFAULT_PATH_404 = "webroot/err/page404.html"; private static String serverName = "Vert.x-proxy-server"; //Server name in Http response header + public static String REROUTE_PATH_PREFIX = "/__rrvpspp"; //re_route_vert_proxy_server_path_prefix 硬编码 + @Override public void start(Promise startPromise) throws Exception { @@ -74,22 +76,24 @@ public class ReverseProxyVerticle extends AbstractVerticle { * @param proxyConf 代理配置 */ private void handleProxyConf(JsonObject proxyConf) { - // 404 path - if (proxyConf.containsKey("404")) { + // page404 path + if (proxyConf.containsKey( + + "page404")) { System.getProperty("user.dir"); - String path = proxyConf.getString("404"); + String path = proxyConf.getString("page404"); if (StringUtils.isEmpty(path)) { - proxyConf.put("404", DEFAULT_PATH_404); + proxyConf.put("page404", DEFAULT_PATH_404); } else { if (!path.startsWith("/")) { path = "/" + path; } if (!new File(System.getProperty("user.dir") + path).exists()) { - proxyConf.put("404", DEFAULT_PATH_404); + proxyConf.put("page404", DEFAULT_PATH_404); } } } else { - proxyConf.put("404", DEFAULT_PATH_404); + proxyConf.put("page404", DEFAULT_PATH_404); } final HttpClient httpClient = VertxHolder.getVertxInstance().createHttpClient(); @@ -111,17 +115,12 @@ public class ReverseProxyVerticle extends AbstractVerticle { handleStatic(proxyConf.getJsonObject("static"), proxyRouter); } - // static server - if (proxyConf.containsKey("sock")) { - handleSock(proxyConf.getJsonArray("sock"), httpClient, proxyRouter); - } - - // Send 404 page + // Send page404 page proxyRouter.errorHandler(404, ctx -> { - ctx.response().sendFile(proxyConf.getString("404")); + ctx.response().sendFile(proxyConf.getString("page404")); }); - HttpServer server = vertx.createHttpServer(); + HttpServer server = getHttpsServer(proxyConf); server.requestHandler(proxyRouter); Integer port = proxyConf.getInteger("listen"); @@ -129,6 +128,38 @@ public class ReverseProxyVerticle extends AbstractVerticle { server.listen(port); } + private HttpServer getHttpsServer(JsonObject proxyConf) { + HttpServerOptions httpServerOptions = new HttpServerOptions(); + if (proxyConf.containsKey("ssl")) { + JsonObject sslConfig = proxyConf.getJsonObject("ssl"); + + URL sslUrl = this.getClass().getClassLoader().getResource(""); + if (sslUrl == null) { + throw new RuntimeException("SSL url not exist..."); + } + if (sslConfig.containsKey("enable") && sslConfig.getBoolean("enable")) { + String sslCertificatePath = sslUrl.getPath() + sslConfig.getString("ssl_certificate"); + String sslCertificateKeyPath = sslUrl.getPath() + sslConfig.getString("ssl_certificate_key"); + LOGGER.info("enable ssl config. "); + httpServerOptions + .setSsl(true) + .setKeyCertOptions( + new PemKeyCertOptions() + .setKeyPath(sslCertificateKeyPath) + .setCertPath(sslCertificatePath) + ).addEnabledSecureTransportProtocol(sslConfig.getString("ssl_protocols")); + String sslCiphers = sslConfig.getString("ssl_ciphers"); + if (sslCiphers != null && !sslCiphers.isEmpty()) { + for (String s : sslCiphers.split(":")) { + httpServerOptions.addEnabledCipherSuite(s); + } + } + } + + } + return vertx.createHttpServer(httpServerOptions); + } + /** * 处理静态资源配置 * @@ -145,9 +176,12 @@ public class ReverseProxyVerticle extends AbstractVerticle { ctx.next(); }); - final StaticHandler staticHandler = StaticHandler.create(); + + StaticHandler staticHandler; if (staticConf.containsKey("root")) { - staticHandler.setWebRoot(staticConf.getString("root")); + staticHandler = StaticHandler.create(staticConf.getString("root")); + } else { + staticHandler = StaticHandler.create(); } if (staticConf.containsKey("directory-listing")) { staticHandler.setDirectoryListing(staticConf.getBoolean("directory-listing")); @@ -178,7 +212,7 @@ public class ReverseProxyVerticle extends AbstractVerticle { port = 80; } String originPath = url.getPath(); - LOGGER.debug("Conf(path, originPath, host, port) ----> {},{},{},{}", path, originPath, host, port); + LOGGER.info("Conf(path, originPath, host, port) ----> {},{},{},{}", path, originPath, host, port); // 注意这里不能origin多个代理地址, 一个实例只能代理一个origin final HttpProxy httpProxy = HttpProxy.reverseProxy(httpClient); @@ -189,14 +223,21 @@ public class ReverseProxyVerticle extends AbstractVerticle { // 代理目标路径为空 就像nginx一样路径穿透 (相对路径) if (StringUtils.isEmpty(originPath) || path.equals(originPath)) { - proxyRouter.route(path + "*").handler(ProxyHandler.create(httpProxy)); + Route route = path.startsWith("~") ? proxyRouter.routeWithRegex(path.substring(1)) + : proxyRouter.route(path); + route.handler(ProxyHandler.create(httpProxy)); } else { - proxyRouter.route(originPath + "*").handler(ProxyHandler.create(httpProxy)); - proxyRouter.route(path + "*").handler(ctx -> { - String realPath = ctx.request().path(); - if (realPath.startsWith(path)) { + // 配置 /api/, / => 请求 /api/test 代理后 /test + // 配置 /api/, /xxx => 请求 /api/test 代理后 /xxx/test + final String path0 = path; + final String originPath0 = REROUTE_PATH_PREFIX + originPath; + + proxyRouter.route(originPath0 + "*").handler(ProxyHandler.create(httpProxy)); + proxyRouter.route(path0 + "*").handler(ctx -> { + String realPath = ctx.request().uri(); + if (realPath.startsWith(path0)) { // vertx web proxy暂不支持rewrite, 所以这里进行手动替换, 请求地址中的请求path前缀替换为originPath - String rePath = realPath.replaceAll("^" + path, originPath); + String rePath = realPath.replaceAll("^" + path0, originPath0); ctx.reroute(rePath); } else { ctx.next(); @@ -210,54 +251,4 @@ public class ReverseProxyVerticle extends AbstractVerticle { }); } - - /** - * 处理websocket - * - * @param confList sock配置 - * @param httpClient 客户端 - * @param proxyRouter 代理路由 - */ - private void handleSock(JsonArray confList, HttpClient httpClient, Router proxyRouter) { - // 代理规则 - confList.stream().map(e -> (JsonObject) e).forEach(conf -> { - - String origin = conf.getString("origin"); - String path = conf.getString("path"); - LOGGER.info("websocket proxy: {}, {}",origin,path); - - SockJSHandlerOptions options = new SockJSHandlerOptions() - .setHeartbeatInterval(2000) - .setRegisterWriteHandler(true); - - SockJSHandler sockJSHandler = SockJSHandler.create(VertxHolder.getVertxInstance(), options); - if (!path.startsWith("/")) { - path = "/" + path; - } - - - Router route = sockJSHandler.socketHandler(sock -> { - sock.handler(buffer -> { - Future webSocketFuture = httpClient.webSocket(8086,"127.0.0.1",sock.uri()); - webSocketFuture.onSuccess(s -> { - System.out.println(buffer.toString()); - s.write(buffer).onSuccess(v -> { - s.handler(w->{ - System.out.println("--------"+w.toString()); - }); - }); - }); - }); - sock.endHandler(v -> { - - }); - sock.closeHandler(v -> { - - }); - }); - proxyRouter.mountSubRouter("/real/serverApi/test", route); - }); - - - } } diff --git a/web-front/public/avator.png b/web-front/public/avator.png deleted file mode 100644 index 24f52a9..0000000 Binary files a/web-front/public/avator.png and /dev/null differ diff --git a/web-front/yarn.lock b/web-front/yarn.lock index db22ad9..ca3b9fe 100644 --- a/web-front/yarn.lock +++ b/web-front/yarn.lock @@ -1042,7 +1042,7 @@ "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/trace-mapping" "^0.3.9" -"@jridgewell/resolve-uri@^3.1.0": +"@jridgewell/resolve-uri@3.1.0": "integrity" "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==" "resolved" "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz" "version" "3.1.0" @@ -1208,7 +1208,15 @@ dependencies: "@types/node" "*" -"@types/eslint@^7.29.0 || ^8.4.1": +"@types/eslint-scope@^3.7.3": + "integrity" "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==" + "resolved" "https://registry.npmmirror.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz" + "version" "3.7.4" + dependencies: + "@types/eslint" "*" + "@types/estree" "*" + +"@types/eslint@*", "@types/eslint@^7.29.0 || ^8.4.1": "integrity" "sha512-Sl/HOqN8NKPmhWo2VBEPm0nvHnu2LL3v9vKo8MEq0EtbJ4eVzGPl41VNPvn5E1i5poMk4/XD8UriLHpJvEP/Nw==" "resolved" "https://registry.npmmirror.com/@types/eslint/-/eslint-8.4.10.tgz" "version" "8.4.10" @@ -1216,10 +1224,10 @@ "@types/estree" "*" "@types/json-schema" "*" -"@types/estree@*", "@types/estree@^1.0.5": - "integrity" "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" - "resolved" "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz" - "version" "1.0.5" +"@types/estree@*", "@types/estree@^1.0.0": + "integrity" "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==" + "resolved" "https://registry.npmmirror.com/@types/estree/-/estree-1.0.0.tgz" + "version" "1.0.0" "@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.31": "integrity" "sha512-aI5h/VOkxOF2Z1saPy0Zsxs5avets/iaiAJYznQFm5By/pamU31xWKL//epiF4OfUA2qTOc9PV6tCUjhO8wlZA==" @@ -1617,10 +1625,10 @@ "resolved" "https://registry.npmmirror.com/@vue/web-component-wrapper/-/web-component-wrapper-1.3.0.tgz" "version" "1.3.0" -"@webassemblyjs/ast@^1.12.1", "@webassemblyjs/ast@1.12.1": - "integrity" "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==" - "resolved" "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz" - "version" "1.12.1" +"@webassemblyjs/ast@^1.11.5", "@webassemblyjs/ast@1.11.6": + "integrity" "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==" + "resolved" "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz" + "version" "1.11.6" dependencies: "@webassemblyjs/helper-numbers" "1.11.6" "@webassemblyjs/helper-wasm-bytecode" "1.11.6" @@ -1635,10 +1643,10 @@ "resolved" "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz" "version" "1.11.6" -"@webassemblyjs/helper-buffer@1.12.1": - "integrity" "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==" - "resolved" "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz" - "version" "1.12.1" +"@webassemblyjs/helper-buffer@1.11.6": + "integrity" "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==" + "resolved" "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz" + "version" "1.11.6" "@webassemblyjs/helper-numbers@1.11.6": "integrity" "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==" @@ -1654,15 +1662,15 @@ "resolved" "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz" "version" "1.11.6" -"@webassemblyjs/helper-wasm-section@1.12.1": - "integrity" "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==" - "resolved" "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz" - "version" "1.12.1" +"@webassemblyjs/helper-wasm-section@1.11.6": + "integrity" "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==" + "resolved" "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz" + "version" "1.11.6" dependencies: - "@webassemblyjs/ast" "1.12.1" - "@webassemblyjs/helper-buffer" "1.12.1" + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-buffer" "1.11.6" "@webassemblyjs/helper-wasm-bytecode" "1.11.6" - "@webassemblyjs/wasm-gen" "1.12.1" + "@webassemblyjs/wasm-gen" "1.11.6" "@webassemblyjs/ieee754@1.11.6": "integrity" "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==" @@ -1683,59 +1691,59 @@ "resolved" "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz" "version" "1.11.6" -"@webassemblyjs/wasm-edit@^1.12.1": - "integrity" "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==" - "resolved" "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz" - "version" "1.12.1" +"@webassemblyjs/wasm-edit@^1.11.5": + "integrity" "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==" + "resolved" "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz" + "version" "1.11.6" dependencies: - "@webassemblyjs/ast" "1.12.1" - "@webassemblyjs/helper-buffer" "1.12.1" + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-buffer" "1.11.6" "@webassemblyjs/helper-wasm-bytecode" "1.11.6" - "@webassemblyjs/helper-wasm-section" "1.12.1" - "@webassemblyjs/wasm-gen" "1.12.1" - "@webassemblyjs/wasm-opt" "1.12.1" - "@webassemblyjs/wasm-parser" "1.12.1" - "@webassemblyjs/wast-printer" "1.12.1" + "@webassemblyjs/helper-wasm-section" "1.11.6" + "@webassemblyjs/wasm-gen" "1.11.6" + "@webassemblyjs/wasm-opt" "1.11.6" + "@webassemblyjs/wasm-parser" "1.11.6" + "@webassemblyjs/wast-printer" "1.11.6" -"@webassemblyjs/wasm-gen@1.12.1": - "integrity" "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==" - "resolved" "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz" - "version" "1.12.1" +"@webassemblyjs/wasm-gen@1.11.6": + "integrity" "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==" + "resolved" "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz" + "version" "1.11.6" dependencies: - "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/ast" "1.11.6" "@webassemblyjs/helper-wasm-bytecode" "1.11.6" "@webassemblyjs/ieee754" "1.11.6" "@webassemblyjs/leb128" "1.11.6" "@webassemblyjs/utf8" "1.11.6" -"@webassemblyjs/wasm-opt@1.12.1": - "integrity" "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==" - "resolved" "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz" - "version" "1.12.1" +"@webassemblyjs/wasm-opt@1.11.6": + "integrity" "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==" + "resolved" "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz" + "version" "1.11.6" dependencies: - "@webassemblyjs/ast" "1.12.1" - "@webassemblyjs/helper-buffer" "1.12.1" - "@webassemblyjs/wasm-gen" "1.12.1" - "@webassemblyjs/wasm-parser" "1.12.1" + "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-buffer" "1.11.6" + "@webassemblyjs/wasm-gen" "1.11.6" + "@webassemblyjs/wasm-parser" "1.11.6" -"@webassemblyjs/wasm-parser@^1.12.1", "@webassemblyjs/wasm-parser@1.12.1": - "integrity" "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==" - "resolved" "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz" - "version" "1.12.1" +"@webassemblyjs/wasm-parser@^1.11.5", "@webassemblyjs/wasm-parser@1.11.6": + "integrity" "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==" + "resolved" "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz" + "version" "1.11.6" dependencies: - "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/ast" "1.11.6" "@webassemblyjs/helper-api-error" "1.11.6" "@webassemblyjs/helper-wasm-bytecode" "1.11.6" "@webassemblyjs/ieee754" "1.11.6" "@webassemblyjs/leb128" "1.11.6" "@webassemblyjs/utf8" "1.11.6" -"@webassemblyjs/wast-printer@1.12.1": - "integrity" "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==" - "resolved" "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz" - "version" "1.12.1" +"@webassemblyjs/wast-printer@1.11.6": + "integrity" "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==" + "resolved" "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz" + "version" "1.11.6" dependencies: - "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/ast" "1.11.6" "@xtuc/long" "4.2.2" "@xtuc/ieee754@^1.2.0": @@ -1756,10 +1764,10 @@ "mime-types" "~2.1.34" "negotiator" "0.6.3" -"acorn-import-attributes@^1.9.5": - "integrity" "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==" - "resolved" "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz" - "version" "1.9.5" +"acorn-import-assertions@^1.9.0": + "integrity" "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==" + "resolved" "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz" + "version" "1.9.0" "acorn-jsx@^5.3.1", "acorn-jsx@^5.3.2": "integrity" "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==" @@ -2048,9 +2056,9 @@ "postcss-value-parser" "^4.2.0" "axios@^1.7.4": - "integrity" "sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw==" - "resolved" "https://registry.npmjs.org/axios/-/axios-1.7.4.tgz" - "version" "1.7.4" + "integrity" "sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==" + "resolved" "https://registry.npmmirror.com/axios/-/axios-1.7.7.tgz" + "version" "1.7.7" dependencies: "follow-redirects" "^1.15.6" "form-data" "^4.0.0" @@ -2149,10 +2157,10 @@ "resolved" "https://registry.npmmirror.com/bluebird/-/bluebird-3.7.2.tgz" "version" "3.7.2" -"body-parser@1.20.3": - "integrity" "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==" - "resolved" "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz" - "version" "1.20.3" +"body-parser@1.20.2": + "integrity" "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==" + "resolved" "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz" + "version" "1.20.2" dependencies: "bytes" "3.1.2" "content-type" "~1.0.5" @@ -2162,7 +2170,7 @@ "http-errors" "2.0.0" "iconv-lite" "0.4.24" "on-finished" "2.4.1" - "qs" "6.13.0" + "qs" "6.11.0" "raw-body" "2.5.2" "type-is" "~1.6.18" "unpipe" "1.0.0" @@ -2197,22 +2205,22 @@ dependencies: "balanced-match" "^1.0.0" -"braces@^3.0.3", "braces@~3.0.2": +"braces@^3.0.2", "braces@~3.0.2": "integrity" "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==" "resolved" "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz" "version" "3.0.3" dependencies: "fill-range" "^7.1.1" -"browserslist@^4.0.0", "browserslist@^4.16.3", "browserslist@^4.16.6", "browserslist@^4.21.10", "browserslist@^4.21.3", "browserslist@^4.21.4", "browserslist@>= 4.21.0": - "integrity" "sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==" - "resolved" "https://registry.npmjs.org/browserslist/-/browserslist-4.23.3.tgz" - "version" "4.23.3" +"browserslist@^4.0.0", "browserslist@^4.14.5", "browserslist@^4.16.3", "browserslist@^4.16.6", "browserslist@^4.21.3", "browserslist@^4.21.4", "browserslist@>= 4.21.0": + "integrity" "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==" + "resolved" "https://registry.npmmirror.com/browserslist/-/browserslist-4.21.4.tgz" + "version" "4.21.4" dependencies: - "caniuse-lite" "^1.0.30001646" - "electron-to-chromium" "^1.5.4" - "node-releases" "^2.0.18" - "update-browserslist-db" "^1.1.0" + "caniuse-lite" "^1.0.30001400" + "electron-to-chromium" "^1.4.251" + "node-releases" "^2.0.6" + "update-browserslist-db" "^1.0.9" "buffer-crc32@^0.2.1", "buffer-crc32@^0.2.13": "integrity" "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==" @@ -2310,10 +2318,10 @@ "lodash.memoize" "^4.1.2" "lodash.uniq" "^4.5.0" -"caniuse-lite@^1.0.0", "caniuse-lite@^1.0.30001426", "caniuse-lite@^1.0.30001646": - "integrity" "sha512-jRGVy3iSGO5Uutn2owlb5gR6qsGngTw9ZTb4ali9f3glshcNmJ2noam4Mo9zia5P9Dk3jNNydy7vQjuE5dQmfg==" - "resolved" "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001655.tgz" - "version" "1.0.30001655" +"caniuse-lite@^1.0.0", "caniuse-lite@^1.0.30001400", "caniuse-lite@^1.0.30001426": + "integrity" "sha512-239m03Pqy0hwxYPYR5JwOIxRJfLTWtle9FV8zosfV5pHg+/51uD4nxcUlM8+mWWGfwKtt8lJNHnD3cWw9VZ6ow==" + "resolved" "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001442.tgz" + "version" "1.0.30001442" "case-sensitive-paths-webpack-plugin@^2.3.0": "integrity" "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==" @@ -2955,12 +2963,12 @@ "depd@2.0.0": "integrity" "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" - "resolved" "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" + "resolved" "https://registry.npmmirror.com/depd/-/depd-2.0.0.tgz" "version" "2.0.0" "destroy@1.2.0": "integrity" "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" - "resolved" "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz" + "resolved" "https://registry.npmmirror.com/destroy/-/destroy-1.2.0.tgz" "version" "1.2.0" "detect-node@^2.0.4": @@ -3066,13 +3074,13 @@ "ee-first@1.1.1": "integrity" "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" - "resolved" "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" + "resolved" "https://registry.npmmirror.com/ee-first/-/ee-first-1.1.1.tgz" "version" "1.1.1" -"electron-to-chromium@^1.5.4": - "integrity" "sha512-lbBcvtIJ4J6sS4tb5TLp1b4LyfCdMkwStzXPyAgVgTRAsep4bvrAGaBOP7ZJtQMNJpSQ9SqG4brWOroNaQtm7Q==" - "resolved" "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.13.tgz" - "version" "1.5.13" +"electron-to-chromium@^1.4.251": + "integrity" "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==" + "resolved" "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz" + "version" "1.4.284" "element-ui@^2.15.14": "integrity" "sha512-2v9fHL0ZGINotOlRIAJD5YuVB8V7WKxrE9Qy7dXhRipa035+kF7WuU/z+tEmLVPBcJ0zt8mOu1DKpWcVzBK8IA==" @@ -3098,14 +3106,9 @@ "encodeurl@~1.0.2": "integrity" "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" - "resolved" "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" + "resolved" "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz" "version" "1.0.2" -"encodeurl@~2.0.0": - "integrity" "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==" - "resolved" "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz" - "version" "2.0.0" - "end-of-stream@^1.1.0", "end-of-stream@^1.4.1": "integrity" "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==" "resolved" "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz" @@ -3113,10 +3116,10 @@ dependencies: "once" "^1.4.0" -"enhanced-resolve@^5.17.1": - "integrity" "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==" - "resolved" "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz" - "version" "5.17.1" +"enhanced-resolve@^5.15.0": + "integrity" "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==" + "resolved" "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz" + "version" "5.15.0" dependencies: "graceful-fs" "^4.2.4" "tapable" "^2.2.0" @@ -3164,10 +3167,10 @@ "resolved" "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.0.tgz" "version" "1.3.0" -"escalade@^3.1.1", "escalade@^3.1.2": - "integrity" "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==" - "resolved" "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz" - "version" "3.2.0" +"escalade@^3.1.1": + "integrity" "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + "resolved" "https://registry.npmmirror.com/escalade/-/escalade-3.1.1.tgz" + "version" "3.1.1" "escape-html@~1.0.3": "integrity" "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" @@ -3362,7 +3365,7 @@ "etag@~1.8.1": "integrity" "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" - "resolved" "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" + "resolved" "https://registry.npmmirror.com/etag/-/etag-1.8.1.tgz" "version" "1.8.1" "event-pubsub@4.3.0": @@ -3422,36 +3425,36 @@ "strip-final-newline" "^2.0.0" "express@^4.17.3": - "integrity" "sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng==" - "resolved" "https://registry.npmjs.org/express/-/express-4.21.0.tgz" - "version" "4.21.0" + "integrity" "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==" + "resolved" "https://registry.npmjs.org/express/-/express-4.19.2.tgz" + "version" "4.19.2" dependencies: "accepts" "~1.3.8" "array-flatten" "1.1.1" - "body-parser" "1.20.3" + "body-parser" "1.20.2" "content-disposition" "0.5.4" "content-type" "~1.0.4" "cookie" "0.6.0" "cookie-signature" "1.0.6" "debug" "2.6.9" "depd" "2.0.0" - "encodeurl" "~2.0.0" + "encodeurl" "~1.0.2" "escape-html" "~1.0.3" "etag" "~1.8.1" - "finalhandler" "1.3.1" + "finalhandler" "1.2.0" "fresh" "0.5.2" "http-errors" "2.0.0" - "merge-descriptors" "1.0.3" + "merge-descriptors" "1.0.1" "methods" "~1.1.2" "on-finished" "2.4.1" "parseurl" "~1.3.3" - "path-to-regexp" "0.1.10" + "path-to-regexp" "0.1.7" "proxy-addr" "~2.0.7" - "qs" "6.13.0" + "qs" "6.11.0" "range-parser" "~1.2.1" "safe-buffer" "5.2.1" - "send" "0.19.0" - "serve-static" "1.16.2" + "send" "0.18.0" + "serve-static" "1.15.0" "setprototypeof" "1.2.0" "statuses" "2.0.1" "type-is" "~1.6.18" @@ -3533,13 +3536,13 @@ dependencies: "to-regex-range" "^5.0.1" -"finalhandler@1.3.1": - "integrity" "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==" - "resolved" "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz" - "version" "1.3.1" +"finalhandler@1.2.0": + "integrity" "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==" + "resolved" "https://registry.npmmirror.com/finalhandler/-/finalhandler-1.2.0.tgz" + "version" "1.2.0" dependencies: "debug" "2.6.9" - "encodeurl" "~2.0.0" + "encodeurl" "~1.0.2" "escape-html" "~1.0.3" "on-finished" "2.4.1" "parseurl" "~1.3.3" @@ -3602,7 +3605,7 @@ "fresh@0.5.2": "integrity" "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" - "resolved" "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz" + "resolved" "https://registry.npmmirror.com/fresh/-/fresh-0.5.2.tgz" "version" "0.5.2" "fs-constants@^1.0.0": @@ -3717,7 +3720,7 @@ "glob-to-regexp@^0.4.1": "integrity" "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" - "resolved" "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz" + "resolved" "https://registry.npmmirror.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz" "version" "0.4.1" "glob@^7.1.3", "glob@^7.1.4", "glob@^7.2.3": @@ -3777,10 +3780,10 @@ dependencies: "get-intrinsic" "^1.1.3" -"graceful-fs@^4.1.2", "graceful-fs@^4.1.6", "graceful-fs@^4.2.0", "graceful-fs@^4.2.11", "graceful-fs@^4.2.4", "graceful-fs@^4.2.6": - "integrity" "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" - "resolved" "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz" - "version" "4.2.11" +"graceful-fs@^4.1.2", "graceful-fs@^4.1.6", "graceful-fs@^4.2.0", "graceful-fs@^4.2.4", "graceful-fs@^4.2.6", "graceful-fs@^4.2.9": + "integrity" "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + "resolved" "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.10.tgz" + "version" "4.2.10" "gzip-size@^6.0.0": "integrity" "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==" @@ -3936,7 +3939,7 @@ "http-errors@2.0.0": "integrity" "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==" - "resolved" "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz" + "resolved" "https://registry.npmmirror.com/http-errors/-/http-errors-2.0.0.tgz" "version" "2.0.0" dependencies: "depd" "2.0.0" @@ -4518,10 +4521,10 @@ dependencies: "fs-monkey" "^1.0.3" -"merge-descriptors@1.0.3": - "integrity" "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==" - "resolved" "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz" - "version" "1.0.3" +"merge-descriptors@1.0.1": + "integrity" "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + "resolved" "https://registry.npmmirror.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz" + "version" "1.0.1" "merge-source-map@^1.1.0": "integrity" "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==" @@ -4546,11 +4549,11 @@ "version" "1.1.2" "micromatch@^4.0.2", "micromatch@^4.0.4", "micromatch@^4.0.5": - "integrity" "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==" - "resolved" "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz" - "version" "4.0.8" + "integrity" "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==" + "resolved" "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz" + "version" "4.0.5" dependencies: - "braces" "^3.0.3" + "braces" "^3.0.2" "picomatch" "^2.3.1" "mime-db@>= 1.43.0 < 2", "mime-db@1.52.0": @@ -4567,7 +4570,7 @@ "mime@1.6.0": "integrity" "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" - "resolved" "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" + "resolved" "https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz" "version" "1.6.0" "mimic-fn@^1.0.0": @@ -4686,12 +4689,12 @@ "ms@2.0.0": "integrity" "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - "resolved" "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" + "resolved" "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz" "version" "2.0.0" "ms@2.1.3": "integrity" "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - "resolved" "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" + "resolved" "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz" "version" "2.1.3" "multicast-dns@^7.2.5": @@ -4756,10 +4759,10 @@ "resolved" "https://registry.npmmirror.com/node-forge/-/node-forge-1.3.1.tgz" "version" "1.3.1" -"node-releases@^2.0.18": - "integrity" "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==" - "resolved" "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz" - "version" "2.0.18" +"node-releases@^2.0.6": + "integrity" "sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==" + "resolved" "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.8.tgz" + "version" "2.0.8" "normalize-package-data@^2.5.0": "integrity" "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==" @@ -4823,9 +4826,9 @@ "version" "4.1.1" "object-inspect@^1.13.1": - "integrity" "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==" - "resolved" "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz" - "version" "1.13.2" + "integrity" "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==" + "resolved" "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz" + "version" "1.13.1" "object-keys@^1.1.1": "integrity" "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" @@ -4849,7 +4852,7 @@ "on-finished@2.4.1": "integrity" "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==" - "resolved" "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz" + "resolved" "https://registry.npmmirror.com/on-finished/-/on-finished-2.4.1.tgz" "version" "2.4.1" dependencies: "ee-first" "1.1.1" @@ -5040,10 +5043,10 @@ "resolved" "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz" "version" "1.0.7" -"path-to-regexp@0.1.10": - "integrity" "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==" - "resolved" "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz" - "version" "0.1.10" +"path-to-regexp@0.1.7": + "integrity" "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + "resolved" "https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz" + "version" "0.1.7" "path-type@^4.0.0": "integrity" "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" @@ -5055,10 +5058,10 @@ "resolved" "https://registry.npmmirror.com/picocolors/-/picocolors-0.2.1.tgz" "version" "0.2.1" -"picocolors@^1.0.0", "picocolors@^1.0.1": - "integrity" "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==" - "resolved" "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz" - "version" "1.0.1" +"picocolors@^1.0.0": + "integrity" "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + "resolved" "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz" + "version" "1.0.0" "picomatch@^2.0.4", "picomatch@^2.2.1", "picomatch@^2.3.1": "integrity" "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" @@ -5432,12 +5435,12 @@ "pngjs" "^5.0.0" "yargs" "^15.3.1" -"qs@6.13.0": - "integrity" "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==" - "resolved" "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz" - "version" "6.13.0" +"qs@6.11.0": + "integrity" "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==" + "resolved" "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz" + "version" "6.11.0" dependencies: - "side-channel" "^1.0.6" + "side-channel" "^1.0.4" "queue-microtask@^1.2.2": "integrity" "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" @@ -5826,10 +5829,10 @@ "resolved" "https://registry.npmmirror.com/semver/-/semver-5.7.1.tgz" "version" "5.7.1" -"send@0.19.0": - "integrity" "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==" - "resolved" "https://registry.npmjs.org/send/-/send-0.19.0.tgz" - "version" "0.19.0" +"send@0.18.0": + "integrity" "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==" + "resolved" "https://registry.npmmirror.com/send/-/send-0.18.0.tgz" + "version" "0.18.0" dependencies: "debug" "2.6.9" "depd" "2.0.0" @@ -5872,15 +5875,15 @@ "mime-types" "~2.1.17" "parseurl" "~1.3.2" -"serve-static@1.16.2": - "integrity" "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==" - "resolved" "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz" - "version" "1.16.2" +"serve-static@1.15.0": + "integrity" "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==" + "resolved" "https://registry.npmmirror.com/serve-static/-/serve-static-1.15.0.tgz" + "version" "1.15.0" dependencies: - "encodeurl" "~2.0.0" + "encodeurl" "~1.0.2" "escape-html" "~1.0.3" "parseurl" "~1.3.3" - "send" "0.19.0" + "send" "0.18.0" "set-blocking@^2.0.0": "integrity" "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" @@ -5906,7 +5909,7 @@ "setprototypeof@1.2.0": "integrity" "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - "resolved" "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz" + "resolved" "https://registry.npmmirror.com/setprototypeof/-/setprototypeof-1.2.0.tgz" "version" "1.2.0" "shallow-clone@^3.0.0": @@ -5945,7 +5948,7 @@ "resolved" "https://registry.npmmirror.com/shell-quote/-/shell-quote-1.7.4.tgz" "version" "1.7.4" -"side-channel@^1.0.6": +"side-channel@^1.0.4": "integrity" "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==" "resolved" "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz" "version" "1.0.6" @@ -6093,7 +6096,7 @@ "statuses@2.0.1": "integrity" "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" - "resolved" "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz" + "resolved" "https://registry.npmmirror.com/statuses/-/statuses-2.0.1.tgz" "version" "2.0.1" "string_decoder@^1.1.1": @@ -6252,21 +6255,21 @@ "mkdirp" "^1.0.3" "yallist" "^4.0.0" -"terser-webpack-plugin@^5.1.1", "terser-webpack-plugin@^5.3.10": - "integrity" "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==" - "resolved" "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz" - "version" "5.3.10" +"terser-webpack-plugin@^5.1.1", "terser-webpack-plugin@^5.3.7": + "integrity" "sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==" + "resolved" "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz" + "version" "5.3.9" dependencies: - "@jridgewell/trace-mapping" "^0.3.20" + "@jridgewell/trace-mapping" "^0.3.17" "jest-worker" "^27.4.5" "schema-utils" "^3.1.1" "serialize-javascript" "^6.0.1" - "terser" "^5.26.0" + "terser" "^5.16.8" -"terser@^5.10.0", "terser@^5.26.0": - "integrity" "sha512-PQ4DAriWzKj+qgehQ7LK5bQqCFNMmlhjR2PFFLuqGCpuCAauxemVBWwWOxo3UIwWQx8+Pr61Df++r76wDmkQBg==" - "resolved" "https://registry.npmjs.org/terser/-/terser-5.31.6.tgz" - "version" "5.31.6" +"terser@^5.10.0", "terser@^5.16.8": + "integrity" "sha512-qC5+dmecKJA4cpYxRa5aVkKehYsQKc+AHeKl0Oe62aYjBL8ZA33tTljktDHJSaxxMnbI5ZYw+o/S2DxxLu8OfA==" + "resolved" "https://registry.npmjs.org/terser/-/terser-5.19.2.tgz" + "version" "5.19.2" dependencies: "@jridgewell/source-map" "^0.3.3" "acorn" "^8.8.2" @@ -6332,7 +6335,7 @@ "toidentifier@1.0.1": "integrity" "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" - "resolved" "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz" + "resolved" "https://registry.npmmirror.com/toidentifier/-/toidentifier-1.0.1.tgz" "version" "1.0.1" "totalist@^1.0.0": @@ -6424,16 +6427,16 @@ "unpipe@~1.0.0", "unpipe@1.0.0": "integrity" "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" - "resolved" "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" + "resolved" "https://registry.npmmirror.com/unpipe/-/unpipe-1.0.0.tgz" "version" "1.0.0" -"update-browserslist-db@^1.1.0": - "integrity" "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==" - "resolved" "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz" - "version" "1.1.0" +"update-browserslist-db@^1.0.9": + "integrity" "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==" + "resolved" "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz" + "version" "1.0.10" dependencies: - "escalade" "^3.1.2" - "picocolors" "^1.0.1" + "escalade" "^3.1.1" + "picocolors" "^1.0.0" "uri-js@^4.2.2", "uri-js@^4.4.1": "integrity" "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==" @@ -6550,10 +6553,10 @@ "@vue/compiler-sfc" "2.7.16" "csstype" "^3.1.0" -"watchpack@^2.4.1": - "integrity" "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==" - "resolved" "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz" - "version" "2.4.2" +"watchpack@^2.4.0": + "integrity" "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==" + "resolved" "https://registry.npmmirror.com/watchpack/-/watchpack-2.4.0.tgz" + "version" "2.4.0" dependencies: "glob-to-regexp" "^0.4.1" "graceful-fs" "^4.1.2" @@ -6673,32 +6676,33 @@ "version" "0.4.6" "webpack@^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0", "webpack@^3.0.0 || ^4.1.0 || ^5.0.0-0", "webpack@^4.0.0 || ^5.0.0", "webpack@^4.1.0 || ^5.0.0-0", "webpack@^4.27.0 || ^5.0.0", "webpack@^4.37.0 || ^5.0.0", "webpack@^5.0.0", "webpack@^5.1.0", "webpack@^5.20.0", "webpack@^5.54.0", "webpack@>=2": - "integrity" "sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==" - "resolved" "https://registry.npmjs.org/webpack/-/webpack-5.94.0.tgz" - "version" "5.94.0" + "integrity" "sha512-JmcgNZ1iKj+aiR0OvTYtWQqJwq37Pf683dY9bVORwVbUrDhLhdn/PlO2sHsFHPkj7sHNQF3JwaAkp49V+Sq1tQ==" + "resolved" "https://registry.npmjs.org/webpack/-/webpack-5.88.2.tgz" + "version" "5.88.2" dependencies: - "@types/estree" "^1.0.5" - "@webassemblyjs/ast" "^1.12.1" - "@webassemblyjs/wasm-edit" "^1.12.1" - "@webassemblyjs/wasm-parser" "^1.12.1" + "@types/eslint-scope" "^3.7.3" + "@types/estree" "^1.0.0" + "@webassemblyjs/ast" "^1.11.5" + "@webassemblyjs/wasm-edit" "^1.11.5" + "@webassemblyjs/wasm-parser" "^1.11.5" "acorn" "^8.7.1" - "acorn-import-attributes" "^1.9.5" - "browserslist" "^4.21.10" + "acorn-import-assertions" "^1.9.0" + "browserslist" "^4.14.5" "chrome-trace-event" "^1.0.2" - "enhanced-resolve" "^5.17.1" + "enhanced-resolve" "^5.15.0" "es-module-lexer" "^1.2.1" "eslint-scope" "5.1.1" "events" "^3.2.0" "glob-to-regexp" "^0.4.1" - "graceful-fs" "^4.2.11" + "graceful-fs" "^4.2.9" "json-parse-even-better-errors" "^2.3.1" "loader-runner" "^4.2.0" "mime-types" "^2.1.27" "neo-async" "^2.6.2" "schema-utils" "^3.2.0" "tapable" "^2.1.1" - "terser-webpack-plugin" "^5.3.10" - "watchpack" "^2.4.1" + "terser-webpack-plugin" "^5.3.7" + "watchpack" "^2.4.0" "webpack-sources" "^3.2.3" "websocket-driver@^0.7.4", "websocket-driver@>=0.5.1": diff --git a/web-service/src/main/resources/app-dev.yml b/web-service/src/main/resources/app-dev.yml index 061d04a..14e5a98 100644 --- a/web-service/src/main/resources/app-dev.yml +++ b/web-service/src/main/resources/app-dev.yml @@ -4,16 +4,13 @@ server: contextPath: / # 使用数据库 enableDatabase: true - # 使用静态页面 - enableStaticHtmlService: false - staticResourcePath: webroot/ - # 服务域名或者IP + # 服务域名或者IP 生成二维码链接时需要 domainName: https://lz.qaiu.top # 反向代理服务器配置路径(不用加后缀) proxyConf: server-proxy -# vertx线程配置 事件循环线程配置为0: eventLoopPoolSize将会采用默认配置(CPU核心*2) workerPoolSize将会采用默认20 +# vertx线程配置, 为0表示eventLoopPoolSize将会采用默认配置(CPU核心*2) workerPoolSize将会采用默认20 vertx: eventLoopPoolSize: 0 workerPoolSize: 0 diff --git a/web-service/src/main/resources/http-tools/test.http b/web-service/src/main/resources/http-tools/test.http index be08ee6..e6f1273 100644 --- a/web-service/src/main/resources/http-tools/test.http +++ b/web-service/src/main/resources/http-tools/test.http @@ -1,6 +1,6 @@ ### PASS 蓝奏云 # @no-redirect -GET http://127.0.0.1:6400/parser?url=https://www.lanzoux.com/ia2cntg +GET http://127.0.0.1:6400/parser?url=https://www123-asd111.lanzoux.com/ia2cntg ### 蓝奏云 # @no-redirect @@ -176,4 +176,20 @@ POST http://127.0.0.1:6400/v2/login?username=asd +### 6401/v2 +GET http://127.0.0.1:6401/v2/linkInfo?url=https://pan.seeoss.com/s/nLNsQ&pwd=DcGe + + + +### PASS QQ +# @no-redirect +GET http://127.0.0.1:6401/parser?url=https://iwx.mail.qq.com/ftn/download?func=3&key=qweqe&code=8c02cf57&k=asdad + + +### PASS QQ +# @no-redirect +GET http://127.0.0.1:6401/json/parser?url=https://iwx.mail.qq.com/ftn/download?func=3&key=qweqe&code=8c02cf57&k=asdad + +### n1 +http://127.0.0.1:6401/n1/statisticsInfo diff --git a/web-service/src/main/resources/server-proxy.yml b/web-service/src/main/resources/server-proxy.yml index 8dee0fa..7a1f311 100644 --- a/web-service/src/main/resources/server-proxy.yml +++ b/web-service/src/main/resources/server-proxy.yml @@ -1,22 +1,43 @@ # 反向代理 server-name: Vert.x-proxy-server(v4.1.2) -#proxy: -# - listen: 8085 -# # 404的路径 -# 404: webroot/real-html/index.html -# static: -# path: / -## add-headers: -## x-token: ABC -# root: webroot/real-html/ -# index: realIndex -# location: -# - path: /real/ -# origin: 127.0.0.1:8088 -# - path: /api/ -# origin: 127.0.0.1:7070/demo/ -# +proxy: + - listen: 6401 + # 404的路径 + page404: webroot/err/404.html + static: + path: / + add-headers: + x-token: ABC + root: webroot/nfd-front/ +# index: index.html + # ~开通表示正则匹配否则为前缀匹配, 当origin带子路径时进行路由重写, + # 1.origin代理地址端口后有目录(包括 / ),转发后地址:代理地址+访问URL目录部分去除location匹配目录 + # 2.origin代理地址端口后无任何,转发后地址:代理地址+访问URL目录部 + location: + - path: ~^/(json/|v2/|parser).* + origin: 127.0.0.1:6400 + + # json/parser -> xxx/parser +# - path: /json/ +# origin: 127.0.0.1:6400/ + - path: /n1/ + origin: 127.0.0.1:6400/v2/ + +# # SSL HTTPS配置 + ssl: + enable: false + # 强制https 暂不支持 + #ssl_force: true + # SSL 协议版本 + ssl_protocols: TLSv1.2 + # 证书 + ssl_certificate: ssl/server.pem + # 私钥 + ssl_certificate_key: ssl/privkey.key + # 加密套件 ssl_ciphers 暂不支持 + # ssl_ciphers: AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384 + # - listen: 8086 # static: # path: /t2/ diff --git a/web-service/src/main/resources/ssl/privkey.key b/web-service/src/main/resources/ssl/privkey.key new file mode 100644 index 0000000..bba161d --- /dev/null +++ b/web-service/src/main/resources/ssl/privkey.key @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXgIBAAKBgQDdpOpVrYhr6bMddEbbVXQebA24vMLJylHoOngN09Rx8KM/wJZz +4zDPNJJumsQz/kyAX1pd70rxdNb4MLq/ToVlzKIct45y1HvzVzVZA78gP3OKfO9w +JZ+d+MLLw8kmtL2PQSMi0HNHm5LsMyON5eScyBPCR0D2P0bydEiv3df7mwIDAQAB +AoGAHDILgWS28wtitr+A+Avx3qDeSf7xRJxRORqfBRtKbkgvbD/Co/Fl1yYX7qwP +g5G5B6eZplN3lCnJ4v7H8ug5PdJg3RuGmR4EYTx2k/nd/hGNRZfUgWHCII6BjGxN +14n1BcZtDVPR8yvcUXKjlpCemMUQE1xzVLO2nEq/gJtEWpkCQQDzZ4hYjpV6Tsy+ +DN2oLqAtuyeudM2ZSN6ubnEr+OsBfNlHd38z8liCRztAQkBNgrfGqlng79j5fL/p +s/8N5mcvAkEA6R0d/FFe4lBNSxPFrzW73mY2AK5ebuAuB3punkDuS5nkBW+1Jg9p +j+ZZrqYv1ZNR7pAN5DkRBPV2c/y2n3WXVQJBAK0RlbIaGBDyTMRpk4YNORmrNKjo +JnRyituObevtPvQ82KXnQswl6mcfzPKA6QX0B0Y8RFIbWLT0zeSXdqhkhkMCQQCR +SdJ8hgKLLt1do48b6nOS40VZG1RD6nkFtCrpezKJ7/oL4VmXxRdX1ouirHU3ub/g +3euqiF6xJoOTOrhfnhyZAkEAncfWxN1U969lkfNo7ECPJEP2RJzZVcb5PJYab1NL +ccI6qxt/hwNk3NYYEWXavICowVVUNhn2MakeY9cXRlbs3w== +-----END RSA PRIVATE KEY----- diff --git a/web-service/src/main/resources/ssl/server.pem b/web-service/src/main/resources/ssl/server.pem new file mode 100644 index 0000000..6dd60ee --- /dev/null +++ b/web-service/src/main/resources/ssl/server.pem @@ -0,0 +1,13 @@ +-----BEGIN CERTIFICATE----- +MIIB9jCCAV8CFEC4MswPv8GgOAulmgIMioLiNn6GMA0GCSqGSIb3DQEBCwUAMDox +CzAJBgNVBAYTAmNuMQ0wCwYDVQQIDARxYWl1MQ0wCwYDVQQHDARxYWl1MQ0wCwYD +VQQKDARxYWl1MB4XDTI0MTAwMzIxMDM1MFoXDTM0MTAwMTIxMDM1MFowOjELMAkG +A1UEBhMCY24xDTALBgNVBAgMBHFhaXUxDTALBgNVBAcMBHFhaXUxDTALBgNVBAoM +BHFhaXUwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAN2k6lWtiGvpsx10RttV +dB5sDbi8wsnKUeg6eA3T1HHwoz/AlnPjMM80km6axDP+TIBfWl3vSvF01vgwur9O +hWXMohy3jnLUe/NXNVkDvyA/c4p873Aln534wsvDySa0vY9BIyLQc0ebkuwzI43l +5JzIE8JHQPY/RvJ0SK/d1/ubAgMBAAEwDQYJKoZIhvcNAQELBQADgYEAOGALPb49 +rQWM2gctt4jZECtV9t8/eU5XArtNuf3ixKZVmg5LEOmSQ8v9Qs20l5KwIBxiyKIz +GW7kip1lF5gp/sxuYHOSzVhhpbRZkQsANf7yUpAZtlHP4W4vgf+pdZ8DcF/az9KT +Ne9Z+nkXdXoTp9E4PQqbgAteWFRcg5MjbsE= +-----END CERTIFICATE----- diff --git a/web-service/src/main/resources/ssl/自签证书说明.md b/web-service/src/main/resources/ssl/自签证书说明.md new file mode 100644 index 0000000..92ef0bf --- /dev/null +++ b/web-service/src/main/resources/ssl/自签证书说明.md @@ -0,0 +1,71 @@ +OpenSSL 证书 + +第一步:生成私钥 + +在使用 openssl 生成 SSL 证书之前,我们需要先生成私钥。可以使用如下命令行来生成私钥: + +``` + +openssl genrsa -out key.pem 1024 + +``` + +在这个命令中,我们使用了 genrsa 子命令,并且设置了输出文件的名称,以及私钥的长度为 1024。运行此命令会在当前文件夹中生成一个 key.pem 文件,这个文件就是我们所需要的私钥文件。 + +第二步:生成证书请求 + +有了私钥之后,我们就可以生成证书请求了。在使用 openssl 生成证书请求时,可以按照以下命令行来执行: + +``` + +openssl req -new -key key.pem -out csr.pem + +``` + +在这个命令中,我们使用 req 子命令,并且按照要求设置了私钥和输出文件名。在生成证书请求时,需要输入一些信息,比如你的城市,国家等信息,请根据需求填写相应的信息。 + +第三步:签名证书请求 + +生成证书请求后,我们需要将证书请求发送给证书颁发机构进行签名。为了在服务器上轻松地创建自签名的 SSL 证书,我们可以使用类似如下的命令或使用 CA 来签署证书请求: + +``` + +openssl x509 -req -in csr.pem -out cert.pem -signkey key.pem -days 3650 + +``` + +在这个命令中,我们使用了 x509 命令,并且指定了证书请求文件名和输出文件名。我们还使用了 -signkey 选项来指定要使用的私钥文件,以便签署证书。再需要指定 -days 选项均是附带了,控制证书的有效期。 + +这些选项组合将使用我们之前生成的私钥来签署证书请求,并将其输出到我们指定的文件 cert.pem 中。 + +第四步:配置服务器 + +在拥有 SSL 证书之后,我们需要将其配置到服务器当中。不同的 Web 服务器和操作系统可能需要不同的配置方式。在这里以 Nginx 服务器作为例子,以简单介绍如何启用 HTTPS。 + +首先,请将服务器的私钥和证书文件(key.pem 和 cert.pem)上传到服务器上。 + +然后,请在 Nginx 的配置文件中添加以下内容: + +``` + +server { + +listen 443; + +server_name your-domain.com; + +ssl on; + +ssl_certificate /path/to/cert.pem; + +ssl_certificate_key /path/to/key.pem; + +# other server configurations… + +} + +``` + +其中,在 ssl_certificate 中指定证书文件的路径(cert.pem),在 ssl_certificate_key 中指定私钥文件的路径(key.pem)。之后重启 Nginx 服务器即可启用 HTTPS。 + +在实际项目中,使用 openssl 工具来生成 SSL 证书是常见的一个方法。通过以上的介绍,大家可以了解到 openssl 证书的生成步骤,并能够轻松地将证书配置到自己的 Web 服务器上,确保网站的数据传输安全,提升用户的信任度。 diff --git a/web-service/src/test/java/cn/qaiu/vx/core/util/ParamUtilTest.java b/web-service/src/test/java/cn/qaiu/vx/core/util/ParamUtilTest.java index eedae1a..6924f6b 100644 --- a/web-service/src/test/java/cn/qaiu/vx/core/util/ParamUtilTest.java +++ b/web-service/src/test/java/cn/qaiu/vx/core/util/ParamUtilTest.java @@ -2,7 +2,7 @@ package cn.qaiu.vx.core.util; import org.junit.Test; -import static org.junit.Assert.*; +import java.util.regex.Pattern; public class ParamUtilTest { @@ -11,5 +11,10 @@ public class ParamUtilTest { System.out.println(ParamUtil.paramsToMap("")); System.out.println(ParamUtil.paramsToMap("a=asd&d=23")); System.out.println(ParamUtil.paramsToMap("asdasd&dd")); + + } + + public static void main(String[] args) { + Pattern pattern = Pattern.compile("^(/v2/|/json/).*"); } }