Server IP : 184.154.167.98 / Your IP : 18.117.7.235 Web Server : Apache System : Linux pink.dnsnetservice.com 4.18.0-553.22.1.lve.1.el8.x86_64 #1 SMP Tue Oct 8 15:52:54 UTC 2024 x86_64 User : puertode ( 1767) PHP Version : 7.2.34 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /home/puertode/public_html/fotografico/3rdparty/aws/aws-sdk-php/src/Rds/ |
Upload File : |
<?php namespace Aws\Rds; use Aws\Credentials\CredentialsInterface; use Aws\Credentials\Credentials; use Aws\Signature\SignatureV4; use GuzzleHttp\Psr7\Request; use GuzzleHttp\Psr7\Uri; use GuzzleHttp\Promise; use Aws; /** * Generates RDS auth tokens for use with IAM authentication. */ class AuthTokenGenerator { private $credentialProvider; /** * The constructor takes an instance of Credentials or a CredentialProvider * * @param callable|Credentials $creds */ public function __construct($creds) { if ($creds instanceof CredentialsInterface) { $promise = new Promise\FulfilledPromise($creds); $this->credentialProvider = Aws\constantly($promise); } else { $this->credentialProvider = $creds; } } /** * Create the token for database login * * @param string $endpoint The database hostname with port number specified * (e.g., host:port) * @param string $region The region where the database is located * @param string $username The username to login as * * @return string Token generated */ public function createToken($endpoint, $region, $username) { $uri = new Uri($endpoint); $uri = $uri->withPath('/'); $uri = $uri->withQuery('Action=connect&DBUser=' . $username); $request = new Request('GET', $uri); $signer = new SignatureV4('rds-db', $region); $provider = $this->credentialProvider; $url = (string) $signer->presign( $request, $provider()->wait(), '+15 minutes' )->getUri(); // Remove 2 extra slash from the presigned url result return substr($url, 2); } }