@@ -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