Skip to content

Commit c668273

Browse files
committed
added:http pass for login
1 parent c64c7b5 commit c668273

File tree

1 file changed

+36
-10
lines changed

1 file changed

+36
-10
lines changed

XEngine_Source/XEngine_MQServiceApp/MQService_TCPTask.cpp

Lines changed: 36 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -106,17 +106,45 @@ BOOL MessageQueue_TCP_Handle(XENGINE_PROTOCOLHDR* pSt_ProtocolHdr, LPCTSTR lpszC
106106
_tcscpy(st_UserInfo.tszUserPass, st_ProtocolAuth.tszUserPass);
107107

108108
pSt_ProtocolHdr->unOperatorCode = XENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_MQ_REPUSERLOG;
109-
if (!DBModule_MQUser_UserQuery(&st_UserInfo))
109+
if (_tcslen(st_ServiceCfg.st_XPass.tszPassLogin) > 0)
110110
{
111-
pSt_ProtocolHdr->wReserve = 701;
112-
ProtocolModule_Packet_Common(nNetType, pSt_ProtocolHdr, NULL, tszSDBuffer, &nSDLen);
113-
XEngine_MQXService_Send(lpszClientAddr, tszSDBuffer, nSDLen, nNetType);
114-
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("%s客户端:%s,请求本地验证失败,用户或者密码不正确,错误:%lX"), lpszClientType, lpszClientAddr, SessionModule_GetLastError());
115-
return FALSE;
111+
int nHTTPCode = 0;
112+
int nRVLen = 0;
113+
TCHAR* ptszRVBuffer = NULL;
114+
TCHAR* ptszSDBuffer = NULL;
115+
APIHELP_HTTPPARAMENT st_HTTPParament;
116+
memset(&st_HTTPParament, '\0', sizeof(APIHELP_HTTPPARAMENT));
117+
118+
st_HTTPParament.nTimeConnect = 2;
119+
120+
ProtocolModule_Packet_PassAuth(&st_ProtocolAuth, tszSDBuffer, &nSDLen);
121+
APIHelp_HttpRequest_Custom(_T("POST"), st_ServiceCfg.st_XPass.tszPassLogin, tszSDBuffer, &nHTTPCode, &ptszSDBuffer, &nSDLen, NULL, NULL, &st_HTTPParament);
122+
if (200 != nHTTPCode)
123+
{
124+
pSt_ProtocolHdr->wReserve = 701;
125+
ProtocolModule_Packet_Common(nNetType, pSt_ProtocolHdr, NULL, tszSDBuffer, &nSDLen);
126+
XEngine_MQXService_Send(lpszClientAddr, tszSDBuffer, nSDLen, nNetType);
127+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("%s客户端:%s,请求远程验证失败,错误:%lX,HTTPCode:"), lpszClientType, lpszClientAddr, APIHelp_GetLastError(), nHTTPCode);
128+
return FALSE;
129+
}
130+
ProtocolModule_Parse_Http(ptszSDBuffer, nSDLen, NULL, &ptszRVBuffer, &nRVLen);
131+
memcpy(&st_UserInfo, ptszRVBuffer, nRVLen);
132+
}
133+
else
134+
{
135+
if (!DBModule_MQUser_UserQuery(&st_UserInfo))
136+
{
137+
pSt_ProtocolHdr->wReserve = 701;
138+
ProtocolModule_Packet_Common(nNetType, pSt_ProtocolHdr, NULL, tszSDBuffer, &nSDLen);
139+
XEngine_MQXService_Send(lpszClientAddr, tszSDBuffer, nSDLen, nNetType);
140+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _T("%s客户端:%s,请求本地验证失败,用户或者密码不正确,错误:%lX"), lpszClientType, lpszClientAddr, SessionModule_GetLastError());
141+
return FALSE;
142+
}
143+
st_UserInfo.nUserState = 1;
144+
DBModule_MQUser_UserUPDate(&st_UserInfo);
116145
}
117146
pSt_ProtocolHdr->wReserve = 0;
118-
st_UserInfo.nUserState = 1;
119-
147+
120148
if (XENGINE_MQAPP_NETTYPE_HTTP == nNetType)
121149
{
122150
//HTTP使用SESSION
@@ -128,7 +156,6 @@ BOOL MessageQueue_TCP_Handle(XENGINE_PROTOCOLHDR* pSt_ProtocolHdr, LPCTSTR lpszC
128156
{
129157
SessionModule_Client_Create(lpszClientAddr, st_UserInfo.tszUserName, nNetType);
130158
}
131-
DBModule_MQUser_UserUPDate(&st_UserInfo);
132159
ProtocolModule_Packet_Common(nNetType, pSt_ProtocolHdr, NULL, tszSDBuffer, &nSDLen);
133160
XEngine_MQXService_Send(lpszClientAddr, tszSDBuffer, nSDLen, nNetType);
134161
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _T("%s客户端:%s,请求验证成功,用户名:%s,密码:%s"), lpszClientType, lpszClientAddr, st_ProtocolAuth.tszUserName, st_ProtocolAuth.tszUserPass);
@@ -140,7 +167,6 @@ BOOL MessageQueue_TCP_Handle(XENGINE_PROTOCOLHDR* pSt_ProtocolHdr, LPCTSTR lpszC
140167

141168
memcpy(&st_UserInfo, lpszMsgBuffer, sizeof(XENGINE_PROTOCOL_USERINFO));
142169
pSt_ProtocolHdr->unOperatorCode = XENGINE_COMMUNICATION_PROTOCOL_OPERATOR_CODE_MQ_REPUSERREG;
143-
144170
if (DBModule_MQUser_UserQuery(&st_UserInfo))
145171
{
146172
pSt_ProtocolHdr->wReserve = 721;

0 commit comments

Comments
 (0)