- Модуль: dav
- Путь к файлу: ~/bitrix/modules/dav/classes/general/groupdavclient.php
- Класс: CDavGroupdavClient
- Вызов: CDavGroupdavClient::Authenticate
private function Authenticate($request, $response)
{
$authenticate = $response->GetHeader('WWW-Authenticate');
$authenticateProxy = $response->GetHeader('Proxy-Authenticate');
if (is_null($authenticate) && is_null($authenticateProxy))
{
return null;
}
if (!is_null($authenticate) && !is_array($authenticate))
{
$authenticate = array($authenticate);
}
if (!is_null($authenticateProxy) && !is_array($authenticateProxy))
{
$authenticateProxy = array($authenticateProxy);
}
if (!is_null($authenticate))
{
$arAuth = array();
foreach ($authenticate as $auth)
{
$auth = trim($auth);
$p = mb_strpos($auth, " ");
if ($p !== false)
$arAuth[mb_strtolower(mb_substr($auth, 0, $p))] = trim(mb_substr($auth, $p));
else
$arAuth[mb_strtolower($auth)] = "";
}
if (array_key_exists("digest", $arAuth))
{
$request = $this->AuthenticateDigest(CDavExchangeClientResponce::ExtractArray($arAuth["digest"]), $request, $response, "Authorization");
}
elseif (array_key_exists("basic", $arAuth))
{
$request = $this->AuthenticateBasic(CDavExchangeClientResponce::ExtractArray($arAuth["basic"]), $request, $response, "Authorization");
}
elseif (array_key_exists("googlelogin", $arAuth))
{
$request = $this->AuthenticateGoogleLogin(CDavExchangeClientResponce::ExtractArray($arAuth["basic"]), $request, $response, "Authorization");
if ($request === null)
return null;
}
else
return null;
}
if (!is_null($authenticateProxy))
{
$arAuthProxy = array();
foreach ($authenticateProxy as $auth)
{
$auth = trim($auth);
$p = mb_strpos($auth, " ");
if ($p !== false)
$arAuthProxy[mb_strtolower(mb_substr($auth, 0, $p))] = trim(mb_substr($auth, $p));
else
$arAuthProxy[mb_strtolower($auth)] = "";
}
if (array_key_exists("digest", $arAuthProxy))
$request = $this->AuthenticateDigest(CDavExchangeClientResponce::ExtractArray($arAuthProxy["digest"]), $request, $response, "Proxy-Authorization");
elseif (array_key_exists("basic", $arAuthProxy))
$request = $this->AuthenticateBasic(CDavExchangeClientResponce::ExtractArray($arAuthProxy["basic"]), $request, $response, "Proxy-Authorization");
else
return null;
}
return $request;
}