From 11375133ba4aff8571c71f719b173069f742e7ef Mon Sep 17 00:00:00 2001 From: imhao183 Date: Thu, 26 Dec 2019 21:18:34 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A6=81=E6=AD=A2=E5=8F=91=E9=80=81=E6=B6=88?= =?UTF-8?q?=E6=81=AF=E7=BB=99=E8=A2=AB=E5=B0=81=E7=A6=81=E7=94=A8=E6=88=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/io/moquette/imhandler/SendMessageHandler.java | 7 ++++++- .../java/io/moquette/persistence/MemoryMessagesStore.java | 2 +- .../main/java/io/moquette/spi/impl/ProtocolProcessor.java | 3 ++- .../main/java/cn/wildfirechat/proto/ProtoConstants.java | 6 ++++++ 4 files changed, 15 insertions(+), 3 deletions(-) diff --git a/broker/src/main/java/io/moquette/imhandler/SendMessageHandler.java b/broker/src/main/java/io/moquette/imhandler/SendMessageHandler.java index 1dc5f970..4919cfba 100644 --- a/broker/src/main/java/io/moquette/imhandler/SendMessageHandler.java +++ b/broker/src/main/java/io/moquette/imhandler/SendMessageHandler.java @@ -52,7 +52,7 @@ public class SendMessageHandler extends IMHandler { return ErrorCode.INVALID_PARAMETER; } int userStatus = m_messagesStore.getUserStatus(fromUser); - if (userStatus == 1 || userStatus == 2) { + if (userStatus == ProtoConstants.UserStatus.Muted || userStatus == ProtoConstants.UserStatus.Forbidden) { return ErrorCode.ERROR_CODE_FORBIDDEN_SEND_MSG; } @@ -61,6 +61,11 @@ public class SendMessageHandler extends IMHandler { if (errorCode != ErrorCode.ERROR_CODE_SUCCESS) { return errorCode; } + + userStatus = m_messagesStore.getUserStatus(message.getConversation().getTarget()); + if (userStatus == ProtoConstants.UserStatus.Forbidden) { + return ErrorCode.ERROR_CODE_USER_FORBIDDEN; + } } if (message.getConversation().getType() == ProtoConstants.ConversationType.ConversationType_Group ) { diff --git a/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java b/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java index 0b45a2a5..8e1b13ba 100755 --- a/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java +++ b/broker/src/main/java/io/moquette/persistence/MemoryMessagesStore.java @@ -129,7 +129,7 @@ public class MemoryMessagesStore implements IMessagesStore { Constants.MAX_MESSAGE_QUEUE = Integer.parseInt(m_Server.getConfig().getProperty(MESSAGE_Max_Queue)); try { - mDisableStrangerChat = Boolean.parseBoolean(Server.getConfig().getProperty(BrokerConstants.MESSAGE_Disable_Stranger_Chat)); + mDisableStrangerChat = Boolean.parseBoolean(m_Server.getConfig().getProperty(BrokerConstants.MESSAGE_Disable_Stranger_Chat)); } catch (Exception e) { e.printStackTrace(); } diff --git a/broker/src/main/java/io/moquette/spi/impl/ProtocolProcessor.java b/broker/src/main/java/io/moquette/spi/impl/ProtocolProcessor.java index e0f9b6b2..3c9560dc 100755 --- a/broker/src/main/java/io/moquette/spi/impl/ProtocolProcessor.java +++ b/broker/src/main/java/io/moquette/spi/impl/ProtocolProcessor.java @@ -17,6 +17,7 @@ package io.moquette.spi.impl; import cn.wildfirechat.common.ErrorCode; +import cn.wildfirechat.proto.ProtoConstants; import cn.wildfirechat.proto.WFCMessage; import io.moquette.persistence.RPCCenter; import io.moquette.interception.InterceptHandler; @@ -265,7 +266,7 @@ public class ProtocolProcessor { // handle user authentication if (msg.variableHeader().hasUserName()) { int status = m_messagesStore.getUserStatus(msg.payload().userName()); - if (status == 2) { + if (status == ProtoConstants.UserStatus.Forbidden) { failedBlocked(channel); return false; } diff --git a/common/src/main/java/cn/wildfirechat/proto/ProtoConstants.java b/common/src/main/java/cn/wildfirechat/proto/ProtoConstants.java index 671e69cf..966301e9 100644 --- a/common/src/main/java/cn/wildfirechat/proto/ProtoConstants.java +++ b/common/src/main/java/cn/wildfirechat/proto/ProtoConstants.java @@ -139,6 +139,12 @@ public class ProtoConstants { int SearchUserType_Mobile = 3; } + public interface UserStatus { + int Normal = 0; + int Muted = 1; + int Forbidden = 2; + } + public static final int MESSAGE_CONTENT_TYPE_CREATE_GROUP = 104;