客户端连接时检查是否跟获取token的平台一致

This commit is contained in:
heavyrian2012
2022-11-18 22:10:53 +08:00
parent 95b08ff7a3
commit b5d8feab62
3 changed files with 15 additions and 0 deletions
@@ -40,6 +40,11 @@ public class RouteHandler extends IMHandler<WFCMessage.RouteRequest> {
return ErrorCode.ERROR_CODE_SECRECT_KEY_MISMATCH;
}
if(request.getPlatform() != session.getPlatform() && m_messagesStore.existSignatures()) {
LOG.error("Session <{}, {}> platform is {} mismatch the request {}", session.getUsername(), session.getClientID(), session.getPlatform(), request.getPlatform());
return ErrorCode.ERROR_CODE_SECRECT_KEY_MISMATCH;
}
String serverIp = mServer.getServerIp();
String longPort = mServer.getLongPort();
String shortPort = mServer.getShortPort();
@@ -4356,6 +4356,10 @@ public class MemoryMessagesStore implements IMessagesStore {
@Override
public boolean checkSignature(String signature) {
if(mClientSignatureSet.isEmpty()) {
return true;
}
if(StringUtil.isNullOrEmptyAfterTrim(signature)) {
if(mRejectEmptySignature) {
LOG.info("Failed check signature, no signature");
@@ -4373,6 +4377,11 @@ public class MemoryMessagesStore implements IMessagesStore {
}
}
@Override
public boolean existSignatures() {
return !mClientSignatureSet.isEmpty();
}
@Override
public void storeRetained(Topic topic, StoredMessage storedMessage) {
LOG.debug("Store retained message for topic={}, CId={}", topic, storedMessage.getClientID());
@@ -251,6 +251,7 @@ public interface IMessagesStore {
String getShortUUID();
boolean checkSignature(String signature);
boolean existSignatures();
/**
* Used to initialize all persistent store structures
*/