- Модуль: clouds
- Путь к файлу: ~/bitrix/modules/clouds/classes/general/security_service_s3.php
- Класс: CCloudSecurityService_AmazonS3
- Вызов: CCloudSecurityService_AmazonS3::GetFederationToken
function GetFederationToken($arBucket, $Policy, $Name, $DurationSeconds = 129600/*36h*/)
{
global $APPLICATION;
$response = $this->SendRequest(
$arBucket["SETTINGS"]["ACCESS_KEY"],
$arBucket["SETTINGS"]["SECRET_KEY"],
'GET',
$arBucket["BUCKET"],
'/',
array(
'Action' => "GetFederationToken",
'DurationSeconds' => intval($DurationSeconds),
'Name' => $Name,
'Policy' => $this->PHPToJSObject($Policy),
)
);
if(
is_array($response)
&& isset($response["GetFederationTokenResponse"])
&& is_array($response["GetFederationTokenResponse"])
&& isset($response["GetFederationTokenResponse"]["#"])
&& is_array($response["GetFederationTokenResponse"]["#"])
&& isset($response["GetFederationTokenResponse"]["#"]["GetFederationTokenResult"])
&& is_array($response["GetFederationTokenResponse"]["#"]["GetFederationTokenResult"])
&& isset($response["GetFederationTokenResponse"]["#"]["GetFederationTokenResult"][0])
&& is_array($response["GetFederationTokenResponse"]["#"]["GetFederationTokenResult"][0])
&& isset($response["GetFederationTokenResponse"]["#"]["GetFederationTokenResult"][0]["#"])
&& is_array($response["GetFederationTokenResponse"]["#"]["GetFederationTokenResult"][0]["#"])
&& isset($response["GetFederationTokenResponse"]["#"]["GetFederationTokenResult"][0]["#"]["Credentials"])
&& is_array($response["GetFederationTokenResponse"]["#"]["GetFederationTokenResult"][0]["#"]["Credentials"])
)
{
$Credentials = $response["GetFederationTokenResponse"]["#"]["GetFederationTokenResult"][0]["#"]["Credentials"];
if(
isset($Credentials[0])
&& is_array($Credentials[0])
&& isset($Credentials[0]["#"])
&& is_array($Credentials[0]["#"])
&& isset($Credentials[0]["#"]["SessionToken"])
&& is_array($Credentials[0]["#"]["SessionToken"])
&& isset($Credentials[0]["#"]["SessionToken"][0])
&& is_array($Credentials[0]["#"]["SessionToken"][0])
&& isset($Credentials[0]["#"]["SessionToken"][0]["#"])
)
$SessionToken = $Credentials[0]["#"]["SessionToken"][0]["#"];
else
{
return 1;
}
if(
isset($Credentials[0])
&& is_array($Credentials[0])
&& isset($Credentials[0]["#"])
&& is_array($Credentials[0]["#"])
&& isset($Credentials[0]["#"]["SecretAccessKey"])
&& is_array($Credentials[0]["#"]["SecretAccessKey"])
&& isset($Credentials[0]["#"]["SecretAccessKey"][0])
&& is_array($Credentials[0]["#"]["SecretAccessKey"][0])
&& isset($Credentials[0]["#"]["SecretAccessKey"][0]["#"])
)
$SecretAccessKey = $Credentials[0]["#"]["SecretAccessKey"][0]["#"];
else
{
return 2;
}
if(
isset($Credentials[0])
&& is_array($Credentials[0])
&& isset($Credentials[0]["#"])
&& is_array($Credentials[0]["#"])
&& isset($Credentials[0]["#"]["AccessKeyId"])
&& is_array($Credentials[0]["#"]["AccessKeyId"])
&& isset($Credentials[0]["#"]["AccessKeyId"][0])
&& is_array($Credentials[0]["#"]["AccessKeyId"][0])
&& isset($Credentials[0]["#"]["AccessKeyId"][0]["#"])
)
$AccessKeyId = $Credentials[0]["#"]["AccessKeyId"][0]["#"];
else
{
return 3;
}
return array(
"ACCESS_KEY" => $AccessKeyId,
"SECRET_KEY" => $SecretAccessKey,
"SESSION_TOKEN" => $SessionToken,
);
}
else
{
return false;
}
}