diff --git a/broker/config/wildfirechat.conf b/broker/config/wildfirechat.conf index fae5b6aa..2fdf89de 100755 --- a/broker/config/wildfirechat.conf +++ b/broker/config/wildfirechat.conf @@ -201,6 +201,9 @@ user.keep_display_name_when_destroy true # 因此需要分段多次同步,此开关定义了每次同步的数据的条数。此需要客户端支持,客户端SDK在2021.5.25日后支持此功能。如果确认所有客户端都在这个日志之后才可以打开此设置。 #sync.data_part_size 1000 +## 是否关闭api/version接口。api/version方法可以用来检查IM服务版本,上线确认无问题后,可以关掉这个接口。 +#http.close_api_version false + #********************************************************************* # 限频配置 #********************************************************************* diff --git a/broker/src/main/java/com/xiaoleilu/loServer/action/Action.java b/broker/src/main/java/com/xiaoleilu/loServer/action/Action.java index 8d64d9b5..1b72fad6 100755 --- a/broker/src/main/java/com/xiaoleilu/loServer/action/Action.java +++ b/broker/src/main/java/com/xiaoleilu/loServer/action/Action.java @@ -47,6 +47,8 @@ abstract public class Action { protected static RateLimiter robotLimiter = null; protected static RateLimiter channelLimiter = null; + protected static boolean closeApiVersion = false; + public static void init(IConfig config) { int adminRate = 10000; int robotRate = 1000; @@ -70,6 +72,11 @@ abstract public class Action { adminLimiter = new RateLimiter(10, adminRate); robotLimiter = new RateLimiter(10, robotRate); channelLimiter = new RateLimiter(10, channelRate); + + try { + closeApiVersion = Boolean.parseBoolean(config.getProperty(HTTP_CLOSE_API_VERSION, "false")); + } catch (Exception e) { + } } protected class Result { diff --git a/broker/src/main/java/com/xiaoleilu/loServer/action/CheckTokenAction.java b/broker/src/main/java/com/xiaoleilu/loServer/action/CheckTokenAction.java index 837c3432..4f2fbe3c 100755 --- a/broker/src/main/java/com/xiaoleilu/loServer/action/CheckTokenAction.java +++ b/broker/src/main/java/com/xiaoleilu/loServer/action/CheckTokenAction.java @@ -31,6 +31,11 @@ public class CheckTokenAction extends Action { @Override public boolean action(Request request, Response response) { if (request.getNettyRequest() instanceof FullHttpRequest) { + if(closeApiVersion) { + response.sendError(HttpResponseStatus.NOT_FOUND, "404 Not found!"); + return true; + } + response.setStatus(HttpResponseStatus.OK); String userId = request.getParam("userId"); String clientId = request.getParam("clientId"); diff --git a/broker/src/main/java/com/xiaoleilu/loServer/action/VersionAction.java b/broker/src/main/java/com/xiaoleilu/loServer/action/VersionAction.java index ef3b1bd5..e14a392c 100755 --- a/broker/src/main/java/com/xiaoleilu/loServer/action/VersionAction.java +++ b/broker/src/main/java/com/xiaoleilu/loServer/action/VersionAction.java @@ -30,8 +30,12 @@ public class VersionAction extends Action { @Override public boolean action(Request request, Response response) { if (request.getNettyRequest() instanceof FullHttpRequest) { - response.setStatus(HttpResponseStatus.OK); + if(closeApiVersion) { + response.sendError(HttpResponseStatus.NOT_FOUND, "404 Not found!"); + return true; + } + response.setStatus(HttpResponseStatus.OK); try { response.setContent(Utility.formatJson(gson.toJson(GitRepositoryState.getGitRepositoryState()))); diff --git a/broker/src/main/java/io/moquette/BrokerConstants.java b/broker/src/main/java/io/moquette/BrokerConstants.java index 0162bb02..8ac2b9d7 100755 --- a/broker/src/main/java/io/moquette/BrokerConstants.java +++ b/broker/src/main/java/io/moquette/BrokerConstants.java @@ -203,6 +203,9 @@ public final class BrokerConstants { public static final String HTTP_CHANNEL_RATE_LIMIT = "http.channel.rate_limit"; public static final String CLIENT_REQUEST_RATE_LIMIT = "client.request_rate_limit"; + public static final String HTTP_CLOSE_API_VERSION = "http.close_api_version"; + + private BrokerConstants() { } } diff --git a/distribution/src/main/resources/wildfirechat.conf b/distribution/src/main/resources/wildfirechat.conf index 4453aab4..ce5a3464 100755 --- a/distribution/src/main/resources/wildfirechat.conf +++ b/distribution/src/main/resources/wildfirechat.conf @@ -197,6 +197,9 @@ group.visible_quit_or_kickoff_notification 0 # 因此需要分段多次同步,此开关定义了每次同步的数据的条数。此需要客户端支持,客户端SDK在2021.5.25日后支持此功能。如果确认所有客户端都在这个日志之后才可以打开此设置。 #sync.data_part_size 1000 +## 是否关闭api/version接口。api/version方法可以用来检查IM服务版本,上线确认无问题后,可以关掉这个接口。 +#http.close_api_version false + #********************************************************************* # 限频配置 #*********************************************************************