@@ -119,14 +119,59 @@ bool XEngine_Client_HttpTask(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int
119119 return false ;
120120 }
121121 bool bRet = false ;
122- if (1 == nVType)
122+ // 通过什么方法获得用户密码
123+ if (_tcsxlen (st_AuthConfig.st_XApiVer .tszAPIUrl ) > 0 )
123124 {
124- bRet = Verification_HTTP_Basic (st_AuthConfig.st_XApiVer .tszUserName , st_AuthConfig.st_XApiVer .tszUserPass , pptszListHdr, nHdrCount);
125+ int nHTTPCode = 0 ;
126+ int nMSGLen = 0 ;
127+ XCLIENT_APIHTTP st_APIHttp = {};
128+ XCHAR* ptszMSGBuffer = NULL ;
129+ if (!APIClient_Http_Request (_X (" GET" ), st_AuthConfig.st_XApiVer .tszAPIUrl , NULL , &nHTTPCode, &ptszMSGBuffer, &nMSGLen, NULL , NULL , &st_APIHttp))
130+ {
131+ Protocol_Packet_HttpComm (tszSDBuffer, &nSDLen, ERROR_AUTHORIZE_PROTOCOL_UNAUTHORIZE, " api server is down,cant verification" );
132+ XEngine_Client_TaskSend (lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP);
133+ XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X (" HTTP客户端:%s,用户验证失败,GET请求验证服务:%s 失败,错误码:%lX" ), lpszClientAddr, st_AuthConfig.st_XApiVer .tszAPIUrl , APIClient_GetLastError ());
134+ return false ;
135+ }
136+ if (200 != nHTTPCode)
137+ {
138+ Protocol_Packet_HttpComm (tszSDBuffer, &nSDLen, ERROR_AUTHORIZE_PROTOCOL_UNAUTHORIZE, " api server is down,cant verification" );
139+ XEngine_Client_TaskSend (lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP);
140+ XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X (" HTTP客户端:%s,用户验证失败,GET请求验证服务:%s 失败,错误:%d" ), lpszClientAddr, st_AuthConfig.st_XApiVer .tszAPIUrl , nHTTPCode);
141+ return false ;
142+ }
143+ AUTHORIZE_PROTOCOL_USERAUTHEX st_UserAuth = {};
144+ if (!Protocol_Parse_HttpParseAuth (ptszMSGBuffer, nMsgLen, &st_UserAuth))
145+ {
146+ Protocol_Packet_HttpComm (tszSDBuffer, &nSDLen, ERROR_AUTHORIZE_PROTOCOL_UNAUTHORIZE, " api server reply failure,cant verification" );
147+ XEngine_Client_TaskSend (lpszClientAddr, tszSDBuffer, nSDLen, XENGINE_AUTH_APP_NETTYPE_HTTP);
148+ XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X (" HTTP客户端:%s,用户验证失败,返回内容:%s 错误,无法继续" ), lpszClientAddr, ptszMSGBuffer);
149+ BaseLib_Memory_FreeCStyle ((XPPMEM)&ptszMSGBuffer);
150+ return false ;
151+ }
152+ BaseLib_Memory_FreeCStyle ((XPPMEM)&ptszMSGBuffer);
153+
154+ if (1 == nVType)
155+ {
156+ bRet = Verification_HTTP_Basic (st_UserAuth.tszUserName , st_UserAuth.tszUserPass , pptszListHdr, nHdrCount);
157+ }
158+ else if (2 == nVType)
159+ {
160+ bRet = Verification_HTTP_Digest (st_UserAuth.tszUserName , st_UserAuth.tszUserPass , pSt_HTTPParament->tszHttpMethod , pptszListHdr, nHdrCount);
161+ }
125162 }
126- else if ( 2 == nVType)
163+ else
127164 {
128- bRet = Verification_HTTP_Digest (st_AuthConfig.st_XApiVer .tszUserName , st_AuthConfig.st_XApiVer .tszUserPass , pSt_HTTPParament->tszHttpMethod , pptszListHdr, nHdrCount);
165+ if (1 == nVType)
166+ {
167+ bRet = Verification_HTTP_Basic (st_AuthConfig.st_XApiVer .tszUserName , st_AuthConfig.st_XApiVer .tszUserPass , pptszListHdr, nHdrCount);
168+ }
169+ else if (2 == nVType)
170+ {
171+ bRet = Verification_HTTP_Digest (st_AuthConfig.st_XApiVer .tszUserName , st_AuthConfig.st_XApiVer .tszUserPass , pSt_HTTPParament->tszHttpMethod , pptszListHdr, nHdrCount);
172+ }
129173 }
174+
130175 if (!bRet)
131176 {
132177 HttpProtocol_Server_SendMsgEx (xhHttpPacket, tszSDBuffer, &nSDLen, &st_HDRParam, NULL , 0 , tszHDRBuffer);
0 commit comments