diff --git a/broker/config/wildfirechat.conf b/broker/config/wildfirechat.conf index a1afcb06..0317a7c9 100755 --- a/broker/config/wildfirechat.conf +++ b/broker/config/wildfirechat.conf @@ -67,8 +67,8 @@ message.max_queue 1024 ##是否禁止陌生人聊天 message.disable_stranger_chat false - -##黑名单处理策略,0 发送失败,返回被拉黑的错误码;1 发送成功但消息被服务器直接丢弃; +##黑名单处理策略,0 发送失败,返回被拉黑的错误码;1 发送成功但消息被服务器直接丢弃;2 敏感词替换为***;3 不处理。 +##所有命中敏感词的消息都会被记录在敏感词消息表中 message.blacklist.strategy 0 ##禁止搜索用户 @@ -77,6 +77,9 @@ friend.disable_search false ##禁止按照昵称搜索用户。 friend.disable_nick_name_search false +##禁止发送好友邀请,通过server api添加好友不受此限制 +friend.disable_friend_request false + ##好友请求重复发送的间隔,单位是毫秒,默认是7天,0为不限制 friend.repeat_request_duration 604800000 diff --git a/broker/src/main/java/io/moquette/BrokerConstants.java b/broker/src/main/java/io/moquette/BrokerConstants.java index b719eb4f..0f991ccc 100755 --- a/broker/src/main/java/io/moquette/BrokerConstants.java +++ b/broker/src/main/java/io/moquette/BrokerConstants.java @@ -126,6 +126,7 @@ public final class BrokerConstants { public static final String FRIEND_Disable_Search = "friend.disable_search"; public static final String FRIEND_Disable_NickName_Search = "friend.disable_nick_name_search"; + public static final String FRIEND_Disable_Friend_Request = "friend.disable_friend_request"; public static final String FRIEND_Repeat_Request_Duration = "friend.repeat_request_duration"; public static final String FRIEND_Reject_Request_Duration = "friend.reject_request_duration"; public static final String FRIEND_Request_Expiration_Duration = "friend.request_expiration_duration"; diff --git a/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java b/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java index da4a5d47..05055f8e 100755 --- a/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java +++ b/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java @@ -120,7 +120,7 @@ public class MemoryMessagesStore implements IMessagesStore { private boolean mDisableSearch = false; private boolean mDisableNicknameSearch = false; - + private boolean mDisableFriendRequest = false; private long mFriendRequestDuration = 7 * 24 * 60 * 60 * 1000; private long mFriendRejectDuration = 30 * 24 * 60 * 60 * 1000; private long mFriendRequestExpiration = 7 * 24 * 60 * 60 * 1000; @@ -159,6 +159,13 @@ public class MemoryMessagesStore implements IMessagesStore { Utility.printExecption(LOG, e); printMissConfigLog(FRIEND_Disable_NickName_Search, mDisableNicknameSearch + ""); } + try { + mDisableFriendRequest = Boolean.parseBoolean(m_Server.getConfig().getProperty(BrokerConstants.FRIEND_Disable_Friend_Request)); + } catch (Exception e) { + e.printStackTrace(); + Utility.printExecption(LOG, e); + printMissConfigLog(FRIEND_Disable_Friend_Request, mDisableFriendRequest + ""); + } try { mFriendRequestDuration = Long.parseLong(m_Server.getConfig().getProperty(FRIEND_Repeat_Request_Duration)); @@ -1981,6 +1988,10 @@ public class MemoryMessagesStore implements IMessagesStore { @Override public ErrorCode saveAddFriendRequest(String userId, WFCMessage.AddFriendRequest request, long[] head) { + if (mDisableFriendRequest) { + return ErrorCode.ERROR_CODE_NOT_RIGHT; + } + HazelcastInstance hzInstance = m_Server.getHazelcastInstance(); MultiMap requestMap = hzInstance.getMultiMap(USER_FRIENDS_REQUEST); Collection requests = requestMap.get(userId); diff --git a/distribution/src/main/resources/wildfirechat.conf b/distribution/src/main/resources/wildfirechat.conf index dec3fa65..0a57dd4b 100755 --- a/distribution/src/main/resources/wildfirechat.conf +++ b/distribution/src/main/resources/wildfirechat.conf @@ -58,9 +58,19 @@ message.max_queue 1024 ##是否禁止陌生人聊天 message.disable_stranger_chat false -##黑名单处理策略,0 发送失败,返回被拉黑的错误码;1 发送成功但消息被服务器直接丢弃; +##黑名单处理策略,0 发送失败,返回被拉黑的错误码;1 发送成功但消息被服务器直接丢弃;2 敏感词替换为***;3 不处理。 +##所有命中敏感词的消息都会被记录在敏感词消息表中 message.blacklist.strategy 0 +##禁止搜索用户 +friend.disable_search false + +##禁止按照昵称搜索用户。 +friend.disable_nick_name_search false + +##禁止发送好友邀请,通过server api添加好友不受此限制 +friend.disable_friend_request false + ##好友请求重复发送的间隔,单位是毫秒,默认是7天,0为不限制 friend.repeat_request_duration 604800000