@@ -68,100 +68,16 @@ bool XEngine_Task_HttpCenter(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int
6868 XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X (" HTTP客户端:%s,发送的URL请求参数不正确:%s" ), lpszClientAddr, pSt_HTTPParam->tszHttpUri );
6969 return false ;
7070 }
71- st_HDRParam.bIsClose = true ;
72- st_HDRParam.nHttpCode = 200 ;
71+
7372 if (st_ServiceCfg.st_XProxy .bAuthPass )
7473 {
75- int nVType = 0 ;
76- RFCCOMPONENTS_HTTP_HDRPARAM st_HDRParam = {};
77-
78- st_HDRParam.nHttpCode = 401 ;
79- st_HDRParam.bIsClose = true ;
80- st_HDRParam.bAuth = true ;
81- // 打包验证信息
82- int nHDRLen = 0 ;
83- XCHAR tszHDRBuffer[XPATH_MAX] = {};
84- if (1 == st_ServiceCfg.st_XProxy .nVType )
85- {
86- Verification_HTTP_BasicServerPacket (tszHDRBuffer, &nHDRLen);
87- }
88- else
89- {
90- XCHAR tszNonceStr[64 ] = {};
91- XCHAR tszOpaqueStr[64 ] = {};
92- Verification_HTTP_DigestServerPacket (tszHDRBuffer, &nHDRLen, tszNonceStr, tszOpaqueStr);
93- }
94- // 后去验证方法
95- if (!Verification_HTTP_GetType (pptszListHdr, nHdrCount, &nVType))
96- {
97- HttpProtocol_Server_SendMsgEx (xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam, NULL , 0 , tszHDRBuffer);
98- XEngine_Net_SendMsg (lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER);
99- XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X (" HTTP客户端:%s,用户验证失败,验证方式:%d,错误:%lX" ), lpszClientAddr, st_ServiceCfg.st_XProxy .nVType , Verification_GetLastError ());
100- return false ;
101- }
102- // 验证方式是否一致
103- if (st_ServiceCfg.st_XProxy .nVType != nVType)
104- {
105- HttpProtocol_Server_SendMsgEx (xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam, NULL , 0 , tszHDRBuffer);
106- XEngine_Net_SendMsg (lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER);
107- XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X (" HTTP客户端:%s,用户验证失败,验证方式错误,请求:%d,需求:%d" ), lpszClientAddr, nVType, st_ServiceCfg.st_XProxy .nVType );
108- return false ;
109- }
110- bool bRet = false ;
111- int nHTTPCode = 0 ;
112- int nMSGLen = 0 ;
113- XCLIENT_APIHTTP st_APIHttp = {};
114-
115- XCHAR* ptszMSGBuffer = NULL ;
116- if (!APIClient_Http_Request (_X (" GET" ), st_ServiceCfg.st_XProxy .tszAuthPass , NULL , &nHTTPCode, &ptszMSGBuffer, &nMSGLen, NULL , NULL , &st_APIHttp))
117- {
118- st_HDRParam.nHttpCode = 500 ;
119- Protocol_StoragePacket_HTTPPacket (tszRVBuffer, &nRVLen, ERROR_STORAGE_PROTOCOL_HTTP_MANAGE_SERVERDOWN, " api server is down,cant verification" );
120- HttpProtocol_Server_SendMsgEx (xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen, tszHDRBuffer);
121- XEngine_Net_SendMsg (lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER);
122- XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X (" HTTP客户端:%s,用户验证失败,GET请求验证服务:%s 失败,错误码:%lX" ), lpszClientAddr, st_ServiceCfg.st_XProxy .tszAuthPass , APIClient_GetLastError ());
123- return false ;
124- }
125- if (200 != nHTTPCode)
126- {
127- st_HDRParam.nHttpCode = 500 ;
128- Protocol_StoragePacket_HTTPPacket (tszRVBuffer, &nRVLen, ERROR_STORAGE_PROTOCOL_HTTP_MANAGE_SERVERDOWN, " api server is down,cant verification" );
129- HttpProtocol_Server_SendMsgEx (xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen, tszHDRBuffer);
130- XEngine_Net_SendMsg (lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER);
131- XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X (" HTTP客户端:%s,用户验证失败,GET请求验证服务:%s 失败,错误:%d" ), lpszClientAddr, st_ServiceCfg.st_XProxy .tszAuthPass , nHTTPCode);
132- return false ;
133- }
134- XENGINE_PROTOCOL_USERAUTH st_UserAuth = {};
135- if (!Protocol_StorageParse_User (ptszMSGBuffer, nMsgLen, &st_UserAuth))
136- {
137- st_HDRParam.nHttpCode = 500 ;
138- Protocol_StoragePacket_HTTPPacket (tszRVBuffer, &nRVLen, ERROR_STORAGE_PROTOCOL_HTTP_MANAGE_AUTHFAIL, " api server reply failure,cant verification" );
139- HttpProtocol_Server_SendMsgEx (xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam, tszRVBuffer, nRVLen, tszHDRBuffer);
140- XEngine_Net_SendMsg (lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER);
141- XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X (" HTTP客户端:%s,用户验证失败,返回内容:%s 错误,无法继续" ), lpszClientAddr, ptszMSGBuffer);
142- BaseLib_Memory_FreeCStyle ((XPPMEM)&ptszMSGBuffer);
143- return false ;
144- }
145- BaseLib_Memory_FreeCStyle ((XPPMEM)&ptszMSGBuffer);
146-
147- if (1 == nVType)
148- {
149- bRet = Verification_HTTP_Basic (st_UserAuth.tszUserName , st_UserAuth.tszUserPass , pptszListHdr, nHdrCount);
150- }
151- else if (2 == nVType)
152- {
153- bRet = Verification_HTTP_Digest (st_UserAuth.tszUserName , st_UserAuth.tszUserPass , pSt_HTTPParam->tszHttpMethod , pptszListHdr, nHdrCount);
154- }
155-
156- if (!bRet)
74+ if (!StorageApp_HTTPHelp_Verification (lpszClientAddr, pSt_HTTPParam, pptszListHdr, nHdrCount, st_ServiceCfg.st_XProxy .tszAuthPass ))
15775 {
158- HttpProtocol_Server_SendMsgEx (xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam, NULL , 0 , tszHDRBuffer);
159- XEngine_Net_SendMsg (lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER);
160- XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X (" HTTP客户端:%s,用户验证失败,验证处理错误,可能用户密码登信息不匹配,类型:%d" ), lpszClientAddr, nVType);
16176 return false ;
16277 }
163- XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X (" HTTP客户端:%s,HTTP验证类型:%d 通过" ), lpszClientAddr, nVType);
16478 }
79+ st_HDRParam.bIsClose = true ;
80+ st_HDRParam.nHttpCode = 200 ;
16581
16682 if (0 == _tcsxnicmp (lpszMethodPost, pSt_HTTPParam->tszHttpMethod , _tcsxlen (lpszMethodPost)))
16783 {
0 commit comments