Skip to content

Commit 8dac180

Browse files
committed
added:data transfer crypt
1 parent 51fce30 commit 8dac180

9 files changed

Lines changed: 52 additions & 11 deletions

File tree

XEngine_Source/MQCore_ConfigModule/Config_Define.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,12 @@ typedef struct
9191
XCHAR tszAPIUrl[XPATH_MAX];
9292
XCHAR tszServiceName[128];
9393
}st_XReport;
94+
struct
95+
{
96+
bool bEnable;
97+
int nCryptionType;
98+
XCHAR tszPassword[XPATH_MIN];
99+
}st_XCryption;
94100
struct
95101
{
96102
list<xstring> *pStl_ListStorage;

XEngine_Source/MQCore_ConfigModule/Config_Json/Config_Json.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,17 @@ bool CConfig_Json::Config_Json_File(LPCXSTR lpszConfigFile,XENGINE_SERVERCONFIG
168168
pSt_ServerConfig->st_XReport.bEnable = st_JsonXReport["bEnable"].asBool();
169169
_tcsxcpy(pSt_ServerConfig->st_XReport.tszAPIUrl, st_JsonXReport["tszAPIUrl"].asCString());
170170
_tcsxcpy(pSt_ServerConfig->st_XReport.tszServiceName, st_JsonXReport["tszServiceName"].asCString());
171+
172+
if (st_JsonRoot["XCryption"].empty() || (3 != st_JsonRoot["XCryption"].size()))
173+
{
174+
Config_IsErrorOccur = true;
175+
Config_dwErrorCode = ERROR_MQ_MODULE_CONFIG_JSON_XREPORT;
176+
return false;
177+
}
178+
Json::Value st_JsonXCryption = st_JsonRoot["XCryption"];
179+
pSt_ServerConfig->st_XCryption.bEnable = st_JsonXCryption["bEnable"].asBool();
180+
pSt_ServerConfig->st_XCryption.nCryptionType = st_JsonXCryption["nCryptionType"].asInt();
181+
_tcsxcpy(pSt_ServerConfig->st_XCryption.tszPassword, st_JsonXCryption["tszPassword"].asCString());
171182
return true;
172183
}
173184
bool CConfig_Json::Config_Json_VersionFile(LPCXSTR lpszConfigFile, XENGINE_SERVERCONFIG* pSt_ServerConfig)

XEngine_Source/XEngine_MQServiceApp/MQService_HTTPTask/MQService_HTTPGet.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ bool MessageQueue_HttpTask_Get(LPCXSTR lpszClientAddr, LPCXSTR lpszFuncName, XCH
2020
LPCXSTR lpszAPIUPDate = _X("update");
2121
LPCXSTR lpszAPIClose = _X("close");
2222

23-
if (0 == _tcsxnicmp(lpszAPILogin, lpszFuncName, _tcsxlen(lpszAPILogin)))
23+
if (0 == _tcsxncmp(lpszAPILogin, lpszFuncName, _tcsxlen(lpszAPILogin)))
2424
{
2525
//http://app.xyry.org:5202/api?function=login&user=123123aa&pass=123123
2626
XNETHANDLE xhToken = 0;
@@ -66,7 +66,7 @@ bool MessageQueue_HttpTask_Get(LPCXSTR lpszClientAddr, LPCXSTR lpszFuncName, XCH
6666
XEngine_MQXService_Send(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_MQAPP_NETTYPE_HTTP);
6767
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求登录获得TOKEN:%lld 成功,用户级别:%d"), lpszClientAddr, xhToken, st_UserInfo.nUserLevel);
6868
}
69-
else if (0 == _tcsxnicmp(lpszAPIUPDate, lpszFuncName, _tcsxlen(lpszAPIUPDate)))
69+
else if (0 == _tcsxncmp(lpszAPIUPDate, lpszFuncName, _tcsxlen(lpszAPIUPDate)))
7070
{
7171
//http://app.xyry.org:5202/api?function=update&token=1000112345
7272
XCHAR tszUserToken[128];
@@ -85,7 +85,7 @@ bool MessageQueue_HttpTask_Get(LPCXSTR lpszClientAddr, LPCXSTR lpszFuncName, XCH
8585
XEngine_MQXService_Send(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_MQAPP_NETTYPE_HTTP);
8686
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求更新TOKEN:%s 成功"), lpszClientAddr, tszUserToken);
8787
}
88-
else if (0 == _tcsxnicmp(lpszAPIClose, lpszFuncName, _tcsxlen(lpszAPIClose)))
88+
else if (0 == _tcsxncmp(lpszAPIClose, lpszFuncName, _tcsxlen(lpszAPIClose)))
8989
{
9090
//http://app.xyry.org:5202/api?function=close&token=1000112345
9191
XCHAR tszUserToken[128];

XEngine_Source/XEngine_MQServiceApp/MQService_HTTPTask/MQService_HTTPPost.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ bool MessageQueue_HttpTask_Post(LPCXSTR lpszClientAddr, LPCXSTR lpszFuncName, LP
2424
LPCXSTR lpszAPIDelTopic = _X("deletetopic");
2525
LPCXSTR lpszAPIDelUser = _X("deleteuser");
2626
//判断请求
27-
if (0 == _tcsxnicmp(lpszAPIRegister, lpszFuncName, _tcsxlen(lpszAPIRegister)))
27+
if (0 == _tcsxncmp(lpszAPIRegister, lpszFuncName, _tcsxlen(lpszAPIRegister)))
2828
{
2929
XENGINE_PROTOCOL_USERINFO st_UserInfo = {};
3030
if (!ProtocolModule_Parse_Register(lpszMsgBuffer, nMsgLen, &st_UserInfo))
@@ -86,7 +86,7 @@ bool MessageQueue_HttpTask_Post(LPCXSTR lpszClientAddr, LPCXSTR lpszFuncName, LP
8686
XEngine_MQXService_Send(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_MQAPP_NETTYPE_HTTP);
8787
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求用户注册成功,用户名:%s,密码:%s"), lpszClientAddr, st_UserInfo.tszUserName, st_UserInfo.tszUserPass);
8888
}
89-
else if (0 == _tcsxnicmp(lpszAPIGetUser, lpszFuncName, _tcsxlen(lpszAPIGetUser)))
89+
else if (0 == _tcsxncmp(lpszAPIGetUser, lpszFuncName, _tcsxlen(lpszAPIGetUser)))
9090
{
9191
//用户 http://127.0.0.1:5202/api?function=getuser
9292
int nListCount = 0;
@@ -97,7 +97,7 @@ bool MessageQueue_HttpTask_Post(LPCXSTR lpszClientAddr, LPCXSTR lpszFuncName, LP
9797
BaseLib_Memory_Free((XPPPMEM)&ppSt_UserInfo, nListCount);
9898
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,发送的获取用户列表请求成功,获取到的用户列表个数:%d"), lpszClientAddr, nListCount);
9999
}
100-
else if (0 == _tcsxnicmp(lpszAPIGetOnline, lpszFuncName, _tcsxlen(lpszAPIGetOnline)))
100+
else if (0 == _tcsxncmp(lpszAPIGetOnline, lpszFuncName, _tcsxlen(lpszAPIGetOnline)))
101101
{
102102
//获取在线用户 http://127.0.0.1:5202/api?function=getonline
103103
int nType = 0;
@@ -110,7 +110,7 @@ bool MessageQueue_HttpTask_Post(LPCXSTR lpszClientAddr, LPCXSTR lpszFuncName, LP
110110
BaseLib_Memory_Free((XPPPMEM)&pptszListAddr, nListCount);
111111
XEngine_MQXService_Send(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_MQAPP_NETTYPE_HTTP);
112112
}
113-
else if (0 == _tcsxnicmp(lpszAPIGetTopic, lpszFuncName, _tcsxlen(lpszAPIGetTopic)))
113+
else if (0 == _tcsxncmp(lpszAPIGetTopic, lpszFuncName, _tcsxlen(lpszAPIGetTopic)))
114114
{
115115
//主题 http://127.0.0.1:5202/api?function=gettopic
116116
int nDBCount = 0;
@@ -120,7 +120,7 @@ bool MessageQueue_HttpTask_Post(LPCXSTR lpszClientAddr, LPCXSTR lpszFuncName, LP
120120
ProtocolModule_Packet_TopicName(tszSDBuffer, &nSDLen, tszTopicName, nDBCount);
121121
XEngine_MQXService_Send(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_MQAPP_NETTYPE_HTTP);
122122
}
123-
else if (0 == _tcsxnicmp(lpszAPIGetList, lpszFuncName, _tcsxlen(lpszAPIGetList)))
123+
else if (0 == _tcsxncmp(lpszAPIGetList, lpszFuncName, _tcsxlen(lpszAPIGetList)))
124124
{
125125
//主题 http://127.0.0.1:5202/api?function=getlist
126126
int nListCount = 0;
@@ -131,7 +131,7 @@ bool MessageQueue_HttpTask_Post(LPCXSTR lpszClientAddr, LPCXSTR lpszFuncName, LP
131131
XEngine_MQXService_Send(lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_MQAPP_NETTYPE_HTTP);
132132
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,发送的获取主题列表请求成功,获取到的主题列表个数:%d"), lpszClientAddr, nListCount);
133133
}
134-
else if (0 == _tcsxnicmp(lpszAPICreateTopic, lpszFuncName, _tcsxlen(lpszAPICreateTopic)))
134+
else if (0 == _tcsxncmp(lpszAPICreateTopic, lpszFuncName, _tcsxlen(lpszAPICreateTopic)))
135135
{
136136
//http://127.0.0.1:5202/api?function=createtopic
137137

@@ -146,7 +146,7 @@ bool MessageQueue_HttpTask_Post(LPCXSTR lpszClientAddr, LPCXSTR lpszFuncName, LP
146146
MessageQueue_TCP_Handle(&st_ProtocolHdr, lpszClientAddr, (LPCXSTR)&st_MQProtocol, sizeof(XENGINE_PROTOCOL_XMQ), XENGINE_MQAPP_NETTYPE_HTTP);
147147
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求主题删除成功,主题名:%s"), lpszClientAddr, st_MQProtocol.tszMQKey);
148148
}
149-
else if (0 == _tcsxnicmp(lpszAPIDelTopic, lpszFuncName, _tcsxlen(lpszAPIDelTopic)))
149+
else if (0 == _tcsxncmp(lpszAPIDelTopic, lpszFuncName, _tcsxlen(lpszAPIDelTopic)))
150150
{
151151
//http://127.0.0.1:5202/api?function=deletetopic
152152

@@ -161,7 +161,7 @@ bool MessageQueue_HttpTask_Post(LPCXSTR lpszClientAddr, LPCXSTR lpszFuncName, LP
161161
MessageQueue_TCP_Handle(&st_ProtocolHdr, lpszClientAddr, (LPCXSTR)&st_MQProtocol, sizeof(XENGINE_PROTOCOL_XMQ), XENGINE_MQAPP_NETTYPE_HTTP);
162162
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求主题删除成功,主题名:%s"), lpszClientAddr, st_MQProtocol.tszMQKey);
163163
}
164-
else if (0 == _tcsxnicmp(lpszAPIDelUser, lpszFuncName, _tcsxlen(lpszAPIDelUser)))
164+
else if (0 == _tcsxncmp(lpszAPIDelUser, lpszFuncName, _tcsxlen(lpszAPIDelUser)))
165165
{
166166
XENGINE_PROTOCOL_USERINFO st_UserInfo = {};
167167
if (!ProtocolModule_Parse_Register(lpszMsgBuffer, nMsgLen, &st_UserInfo))

XEngine_Source/XEngine_MQServiceApp/MQService_Hdr.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ using namespace std;
2929
#include <XEngine_Include/XEngine_Core/NetCore_Error.h>
3030
#include <XEngine_Include/XEngine_Core/ManagePool_Define.h>
3131
#include <XEngine_Include/XEngine_Core/ManagePool_Error.h>
32+
#include <XEngine_Include/XEngine_Core/Cryption_Define.h>
33+
#include <XEngine_Include/XEngine_Core/Cryption_Error.h>
3234
#include <XEngine_Include/XEngine_Client/APIClient_Define.h>
3335
#include <XEngine_Include/XEngine_Client/APIClient_Error.h>
3436
#include <XEngine_Include/XEngine_NetHelp/APIAddr_Define.h>
@@ -103,6 +105,7 @@ extern MESSAGEQUEUE_DBCONFIG st_DBConfig;
103105
#pragma comment(lib,"XEngine_BaseLib/XEngine_BaseLib.lib")
104106
#pragma comment(lib,"XEngine_Core/XEngine_Core.lib")
105107
#pragma comment(lib,"XEngine_Core/XEngine_ManagePool.lib")
108+
#pragma comment(lib,"XEngine_Core/XEngine_Cryption.lib")
106109
#pragma comment(lib,"XEngine_Client/XClient_APIHelp.lib")
107110
#pragma comment(lib,"XEngine_NetHelp/NetHelp_APIAddr.lib")
108111
#pragma comment(lib,"XEngine_HelpComponents/HelpComponents_XLog.lib")

XEngine_Source/XEngine_MQServiceApp/MQService_MQTTTask.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,10 @@ XHTHREAD XCALLBACK MessageQueue_MQTTThread(XPVOID lParam)
2424

2525
if (MQTTProtocol_Parse_Recv(ppSst_ListAddr[i]->tszClientAddr, &st_MQTTHdr, &ptszMSGBuffer, &nMSGLen))
2626
{
27+
if (st_ServiceCfg.st_XCryption.bEnable)
28+
{
29+
Cryption_Api_CryptDecodec(NULL, (XBYTE*)ptszMSGBuffer, &nMSGLen, st_ServiceCfg.st_XCryption.tszPassword, (ENUM_XENGINE_CRYPTION_SYMMETRIC)st_ServiceCfg.st_XCryption.nCryptionType);
30+
}
2731
MQService_MQTT_Handle(ppSst_ListAddr[i]->tszClientAddr, &st_MQTTHdr, ptszMSGBuffer, nMSGLen);
2832
BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMSGBuffer);
2933
}

XEngine_Source/XEngine_MQServiceApp/MQService_TCPTask.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@ XHTHREAD XCALLBACK MessageQueue_TCPThread(XPVOID lParam)
2525
XCHAR* ptszMsgBuffer = NULL;
2626
if (HelpComponents_Datas_GetMemoryEx(xhTCPPacket, ppSst_ListAddr[i]->tszClientAddr, &ptszMsgBuffer, &nMsgLen, &st_ProtocolHdr))
2727
{
28+
if (st_ServiceCfg.st_XCryption.bEnable)
29+
{
30+
Cryption_Api_CryptDecodec(NULL, (XBYTE *)ptszMsgBuffer, &nMsgLen, st_ServiceCfg.st_XCryption.tszPassword, (ENUM_XENGINE_CRYPTION_SYMMETRIC)st_ServiceCfg.st_XCryption.nCryptionType);
31+
}
2832
MessageQueue_TCP_Handle(&st_ProtocolHdr, ppSst_ListAddr[i]->tszClientAddr, ptszMsgBuffer, nMsgLen, XENGINE_MQAPP_NETTYPE_TCP);
2933
BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
3034
}

XEngine_Source/XEngine_MQServiceApp/MQService_WSTask.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,10 @@ XHTHREAD XCALLBACK MessageQueue_WebsocketThread(XPVOID lParam)
2323
ENUM_XENGINE_RFCOMPONENTS_WEBSOCKET_OPCODE enOPCode;
2424
if (RfcComponents_WSPacket_GetMemoryEx(xhWSPacket, ppSst_ListAddr[i]->tszClientAddr, &ptszMsgBuffer, &nMsgLen, &enOPCode))
2525
{
26+
if (st_ServiceCfg.st_XCryption.bEnable)
27+
{
28+
Cryption_Api_CryptDecodec(NULL, (XBYTE*)ptszMsgBuffer, &nMsgLen, st_ServiceCfg.st_XCryption.tszPassword, (ENUM_XENGINE_CRYPTION_SYMMETRIC)st_ServiceCfg.st_XCryption.nCryptionType);
29+
}
2630
MessageQueue_Websocket_Handle(ppSst_ListAddr[i]->tszClientAddr, ptszMsgBuffer, nMsgLen, enOPCode);
2731
BaseLib_Memory_FreeCStyle((XPPMEM)&ptszMsgBuffer);
2832
}

XEngine_Source/XEngine_MQServiceApp/XEngine_MQServiceApp.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -400,6 +400,15 @@ int main(int argc, char** argv)
400400
{
401401
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _X("启动服务中,MQTT消息服务没有被启用"));
402402
}
403+
404+
if (st_ServiceCfg.st_XCryption.bEnable)
405+
{
406+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("启动服务中,数据加密服务已被启用,加密类型:%d"), st_ServiceCfg.st_XCryption.nCryptionType);
407+
}
408+
else
409+
{
410+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _X("启动服务中,数据加密服务没有被启用"));
411+
}
403412
#ifndef _DEBUG
404413
//发送信息报告
405414
if (st_ServiceCfg.st_XReport.bEnable && !bIsTest)

0 commit comments

Comments
 (0)