__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

www-data@216.73.216.148: ~ $
<?php

namespace Aws\DSQL;

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 auth tokens to connect to DSQL database clusters.
 */
class AuthTokenGenerator
{
    private const DB_CONNECT = 'DbConnect';
    private const DB_CONNECT_ADMIN = 'DbConnectAdmin';
    private const SIGNING_NAME = 'dsql';
    private const DEFAULT_EXPIRATION_TIME_SECONDS = 900;

    /**
     * @var Credentials|callable
     */
    private $credentialProvider;

    /**
     * The constructor takes an instance of Credentials or a CredentialProvider
     *
     * @param Credentials|callable $creds
     */
    public function __construct(Credentials | callable $creds)
    {
        if ($creds instanceof CredentialsInterface) {
            $promise = new Promise\FulfilledPromise($creds);
            $this->credentialProvider = Aws\constantly($promise);
        } else {
            $this->credentialProvider = $creds;
        }
    }

    /**
     * @param string $endpoint
     * @param string $region
     * @param int $expiration
     *
     * @return string
     */
    public function generateDbConnectAuthToken(
        string $endpoint,
        string $region,
        int $expiration = self::DEFAULT_EXPIRATION_TIME_SECONDS
    ): string
    {
        return $this->createToken($endpoint, $region, self::DB_CONNECT, $expiration);
    }

    /**
     * @param string $endpoint
     * @param string $region
     * @param int $expiration
     *
     * @return string
     */
    public function generateDbConnectAdminAuthToken(
        string $endpoint,
        string $region,
        int $expiration = self::DEFAULT_EXPIRATION_TIME_SECONDS
    ): string
    {
        return $this->createToken($endpoint, $region, self::DB_CONNECT_ADMIN, $expiration);
    }

    /**
     * Creates token for database connection
     *
     * @param string $endpoint The database hostname
     * @param string $region The region where the database is located
     * @param string $action Db action to perform
     * @param int $expiration The expiration of the token in seconds
     *
     * @return string Generated token
     */
    private function createToken(
        string $endpoint,
        string $region,
        string $action,
        int $expiration
    ): string
    {
        if ($expiration <= 0) {
            throw new \InvalidArgumentException(
                "Lifetime must be a positive number, was {$expiration}"
            );
        }

        if (empty($region)) {
            throw new \InvalidArgumentException('Region must be a non-empty string.');
        }

        if (empty($endpoint)) {
            throw new \InvalidArgumentException('Endpoint must be a non-empty string.');
        }

        $uri = new Uri($endpoint);
        if (empty($uri->getHost())) {
            $uri = $uri->withHost($endpoint);
        }
        $uri = $uri->withPath('/')->withQuery('Action=' . $action);

        $request = new Request('GET', $uri);
        $signer = new SignatureV4(self::SIGNING_NAME, $region);
        $provider = $this->credentialProvider;

        $url = (string) $signer->presign(
            $request,
            $provider()->wait(),
            '+' . $expiration . ' seconds'
        )->getUri();

        // Remove 2 extra slash from the presigned url result
        return substr($url, 2);
    }
}


Filemanager

Name Type Size Permission Actions
Exception Folder 0755
AuthTokenGenerator.php File 3.39 KB 0644
DSQLClient.php File 1.49 KB 0644
Filemanager