Server IP : 172.67.158.161 / Your IP : 3.12.161.6 Web Server : LiteSpeed System : Linux business53.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64 User : giankuin ( 1871) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /proc/self/root/proc/thread-self/root/proc/self/cwd/wp-content/plugins/duplicator-pro/aws/Aws/Common/Credentials/ |
Upload File : |
<?php /** * Copyright 2010-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. * A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. See the License for the specific language governing * permissions and limitations under the License. */ namespace DuplicatorPro\Aws\Common\Credentials; defined("ABSPATH") or die(""); use DuplicatorPro\Guzzle\Cache\CacheAdapterInterface; /** * Credentials decorator used to implement caching credentials */ class CacheableCredentials extends AbstractRefreshableCredentials { /** * @var CacheAdapterInterface Cache adapter used to store credentials */ protected $cache; /** * @var string Cache key used to store the credentials */ protected $cacheKey; /** * CacheableCredentials is a decorator that decorates other credentials * * @param CredentialsInterface $credentials Credentials to adapt * @param CacheAdapterInterface $cache Cache to use to store credentials * @param string $cacheKey Cache key of the credentials */ public function __construct(CredentialsInterface $credentials, CacheAdapterInterface $cache, $cacheKey) { $this->cache = $cache; $this->cacheKey = $cacheKey; parent::__construct($credentials); } /** * Attempt to get new credentials from cache or from the adapted object */ protected function refresh() { if (!$cache = $this->cache->fetch($this->cacheKey)) { // The credentials were not found, so try again and cache if new $this->credentials->getAccessKeyId(); if (!$this->credentials->isExpired()) { // The credentials were updated, so cache them $this->cache->save($this->cacheKey, $this->credentials, $this->credentials->getExpiration() - time()); } } else { // The credentials were found in cache, so update the adapter object // if the cached credentials are not expired if (!$cache->isExpired()) { $this->credentials->setAccessKeyId($cache->getAccessKeyId()); $this->credentials->setSecretKey($cache->getSecretKey()); $this->credentials->setSecurityToken($cache->getSecurityToken()); $this->credentials->setExpiration($cache->getExpiration()); } } } }