From 6f4c9dca48d76bc4f49d1a39f1684e56cf7fb3fd Mon Sep 17 00:00:00 2001 From: Redkale <22250530@qq.com> Date: Tue, 23 May 2017 13:15:13 +0800 Subject: [PATCH] --- src/org/redkale/net/http/Rest.java | 8 +++++++- src/org/redkale/net/http/RestService.java | 7 +++++++ src/org/redkale/net/http/RestWebSocket.java | 7 +++++++ 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/org/redkale/net/http/Rest.java b/src/org/redkale/net/http/Rest.java index b60545f3e..a8d4c2d20 100644 --- a/src/org/redkale/net/http/Rest.java +++ b/src/org/redkale/net/http/Rest.java @@ -142,6 +142,12 @@ public final class Rest { //------------------------------------------------------------------------------ final String defmodulename = getWebModuleName(serviceType); + final String catalog = controller == null ? "" : controller.catalog(); + for (char ch : catalog.toCharArray()) { + if (!((ch >= '0' && ch <= '9') || ch == '$' || ch == '_' || (ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z'))) { //不能含特殊字符 + throw new RuntimeException(serviceType.getName() + " have illeal " + RestService.class.getSimpleName() + ".catalog, only 0-9 a-z A-Z _ $"); + } + } for (char ch : defmodulename.toCharArray()) { if (!((ch >= '0' && ch <= '9') || ch == '$' || ch == '_' || (ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z'))) { //不能含特殊字符 throw new RuntimeException(serviceType.getName() + " have illeal " + RestService.class.getSimpleName() + ".value, only 0-9 a-z A-Z _ $"); @@ -162,7 +168,7 @@ public final class Rest { } { //注入 @WebServlet 注解 - String urlpath = "/" + defmodulename + "/*"; + String urlpath = (catalog.isEmpty() ? "/" : ("/" + catalog + "/")) + defmodulename + "/*"; int moduleid = controller == null ? 0 : controller.moduleid(); boolean repair = controller == null ? true : controller.repair(); String comment = controller == null ? "" : controller.comment(); diff --git a/src/org/redkale/net/http/RestService.java b/src/org/redkale/net/http/RestService.java index 08c15ab71..77f91cf82 100644 --- a/src/org/redkale/net/http/RestService.java +++ b/src/org/redkale/net/http/RestService.java @@ -29,6 +29,13 @@ public @interface RestService { */ String name() default ""; + /** + * 目录名, 不能含特殊字符, 只能小写字母+数字,且不能以数字开头 + * + * @return 目录名 + */ + String catalog() default ""; + /** * 模块ID值,鉴权时用到, 对应@WebServlet.moduleid * diff --git a/src/org/redkale/net/http/RestWebSocket.java b/src/org/redkale/net/http/RestWebSocket.java index 1e7d149cc..ff1874e27 100644 --- a/src/org/redkale/net/http/RestWebSocket.java +++ b/src/org/redkale/net/http/RestWebSocket.java @@ -29,6 +29,13 @@ public @interface RestWebSocket { */ String name() default ""; + /** + * 目录名, 不能含特殊字符, 只能小写字母+数字,且不能以数字开头 + * + * @return 目录名 + */ + String catalog() default ""; + /** * 是否屏蔽该类的转换 *