@@ -61,6 +61,42 @@ bool XEngine_Task_HttpWebdav(LPCXSTR lpszClientAddr, LPCXSTR lpszMsgBuffer, int
6161 st_HDRParam.bIsClose = false ;
6262 st_HDRParam.nHttpCode = 200 ;
6363 _tcsxcpy (st_HDRParam.tszMimeType , _X (" xml" ));
64+
65+ if (st_ServiceCfg.st_XProxy .bAuthPass )
66+ {
67+ XCHAR tszUserName[64 ];
68+ XCHAR tszUserPass[64 ];
69+
70+ memset (tszUserName, ' \0 ' , sizeof (tszUserName));
71+ memset (tszUserPass, ' \0 ' , sizeof (tszUserPass));
72+ if (!APIHelp_Api_ProxyAuth (tszUserName, tszUserPass, pptszListHdr, nHdrCount))
73+ {
74+ st_HDRParam.bAuth = true ;
75+ st_HDRParam.nHttpCode = 401 ;
76+
77+ HttpProtocol_Server_SendMsgEx (xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam);
78+ XEngine_Net_SendMsg (lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPWEBDAV);
79+ XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X (" WEBDAV客户端:%s,用户验证失败,错误:%lX" ), lpszClientAddr, StorageHelp_GetLastError ());
80+ return false ;
81+ }
82+ int nResponseCode = 0 ;
83+ XCHAR* ptszBody = NULL ;
84+
85+ Protocol_StoragePacket_BasicAuth (STORAGE_NETTYPE_HTTPWEBDAV, pSt_HTTPParam->tszHttpMethod , pSt_HTTPParam->tszHttpUri , lpszClientAddr, tszUserName, tszUserPass, tszSDBuffer, &nSDLen);
86+ APIClient_Http_Request (_X (" POST" ), st_ServiceCfg.st_XProxy .tszAuthPass , tszSDBuffer, &nResponseCode, &ptszBody, &nSDLen);
87+ if (200 != nResponseCode)
88+ {
89+ st_HDRParam.bAuth = true ;
90+ st_HDRParam.nHttpCode = nResponseCode;
91+
92+ HttpProtocol_Server_SendMsgEx (xhCenterHttp, tszSDBuffer, &nSDLen, &st_HDRParam);
93+ XEngine_Net_SendMsg (lpszClientAddr, tszSDBuffer, nSDLen, STORAGE_NETTYPE_HTTPCENTER);
94+ XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X (" WEBDAV客户端:%s,用户验证失败,用户名:%s,密码:%s,错误码:%d,错误内容:%s" ), tszUserName, tszUserPass, tszUserPass, nResponseCode, ptszBody);
95+ }
96+ BaseLib_Memory_FreeCStyle ((XPPMEM)&ptszBody);
97+ XLOG_PRINT (xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X (" WEBDAV客户端:%s,代理服务:%s 验证通过,用户名:%s,密码:%s" ), lpszClientAddr, st_ServiceCfg.st_XProxy .tszAuthPass , tszUserName, tszUserPass);
98+ st_HDRParam.bAuth = true ;
99+ }
64100 // http://127.0.0.1:5103/storagekey1
65101 if (0 == _tcsxnicmp (lpszMethodOption, pSt_HTTPParam->tszHttpMethod , _tcsxlen (lpszMethodOption)))
66102 {
0 commit comments