diff --git a/broker/src/main/java/io/moquette/imhandler/GetTokenHandler.java b/broker/src/main/java/io/moquette/imhandler/GetTokenHandler.java index b0f942b8..2a555035 100644 --- a/broker/src/main/java/io/moquette/imhandler/GetTokenHandler.java +++ b/broker/src/main/java/io/moquette/imhandler/GetTokenHandler.java @@ -9,6 +9,7 @@ package io.moquette.imhandler; import cn.wildfirechat.proto.WFCMessage; +import com.xiaoleilu.hutool.system.UserInfo; import io.moquette.persistence.MemorySessionStore; import io.moquette.spi.impl.Qos1PublishHandler; import io.moquette.spi.impl.security.TokenAuthenticator; @@ -21,6 +22,11 @@ public class GetTokenHandler extends IMHandler { @Override public ErrorCode action(ByteBuf ackPayload, String clientID, String fromUser, boolean isAdmin, WFCMessage.GetTokenRequest request, Qos1PublishHandler.IMCallback callback) { MemorySessionStore.Session session = m_sessionsStore.updateOrCreateUserSession(fromUser, clientID, request.getPlatform()); + WFCMessage.User userInfo = m_messagesStore.getUserInfo(fromUser); + if(userInfo != null && userInfo.getType() == 1) { + return ErrorCode.ERROR_CODE_ROBOT_NO_TOKEN; + } + TokenAuthenticator authenticator = new TokenAuthenticator(); String strToken = authenticator.generateToken(fromUser); String result = strToken + "|" + session.getSecret() + "|" + session.getDbSecret(); diff --git a/common/src/main/java/cn/wildfirechat/common/ErrorCode.java b/common/src/main/java/cn/wildfirechat/common/ErrorCode.java index 6b0bd964..12aaa0eb 100755 --- a/common/src/main/java/cn/wildfirechat/common/ErrorCode.java +++ b/common/src/main/java/cn/wildfirechat/common/ErrorCode.java @@ -43,6 +43,7 @@ public enum ErrorCode { ERROR_CODE_ALREADY_FRIENDS(23, "already friends"), ERROR_CODE_RECALL_TIME_EXPIRED(24, "time expired"), + ERROR_CODE_ROBOT_NO_TOKEN(25, "robot no token"), ERROR_CODE_CONFERENCE_ROOM_NOT_EXIST(60, "conference room not exist"), ERROR_CODE_USER_NOT_PREPARED(238, "user not prepared"),