| 1 | <?php |
||||||||||||||||||||||||||
| 2 | |||||||||||||||||||||||||||
| 3 | namespace AlibabaCloud\Client\Credentials\Providers; |
||||||||||||||||||||||||||
| 4 | |||||||||||||||||||||||||||
| 5 | use AlibabaCloud\Client\SDK; |
||||||||||||||||||||||||||
| 6 | use AlibabaCloud\Client\AlibabaCloud; |
||||||||||||||||||||||||||
| 7 | use AlibabaCloud\Client\Result\Result; |
||||||||||||||||||||||||||
| 8 | use AlibabaCloud\Client\Request\Request; |
||||||||||||||||||||||||||
| 9 | use AlibabaCloud\Client\Credentials\StsCredential; |
||||||||||||||||||||||||||
| 10 | use AlibabaCloud\Client\Exception\ClientException; |
||||||||||||||||||||||||||
| 11 | use AlibabaCloud\Client\Exception\ServerException; |
||||||||||||||||||||||||||
| 12 | use AlibabaCloud\Client\Credentials\AccessKeyCredential; |
||||||||||||||||||||||||||
| 13 | use AlibabaCloud\Client\Signature\ShaHmac256WithRsaSignature; |
||||||||||||||||||||||||||
| 14 | use AlibabaCloud\Client\Credentials\Requests\GenerateSessionAccessKey; |
||||||||||||||||||||||||||
| 15 | |||||||||||||||||||||||||||
| 16 | /** |
||||||||||||||||||||||||||
| 17 | * Class RsaKeyPairProvider |
||||||||||||||||||||||||||
| 18 | * |
||||||||||||||||||||||||||
| 19 | * @package AlibabaCloud\Client\Credentials\Providers |
||||||||||||||||||||||||||
| 20 | */ |
||||||||||||||||||||||||||
| 21 | class RsaKeyPairProvider extends Provider |
||||||||||||||||||||||||||
| 22 | { |
||||||||||||||||||||||||||
| 23 | |||||||||||||||||||||||||||
| 24 | /** |
||||||||||||||||||||||||||
| 25 | * Get credential. |
||||||||||||||||||||||||||
| 26 | * |
||||||||||||||||||||||||||
| 27 | * @param int $timeout |
||||||||||||||||||||||||||
| 28 | * @param int $connectTimeout |
||||||||||||||||||||||||||
| 29 | * |
||||||||||||||||||||||||||
| 30 | * @return StsCredential |
||||||||||||||||||||||||||
| 31 | * @throws ClientException |
||||||||||||||||||||||||||
| 32 | * @throws ServerException |
||||||||||||||||||||||||||
| 33 | */ |
||||||||||||||||||||||||||
| 34 | 8 | public function get($timeout = Request::TIMEOUT, $connectTimeout = Request::CONNECT_TIMEOUT) |
|||||||||||||||||||||||||
| 35 | { |
||||||||||||||||||||||||||
| 36 | 8 | $credential = $this->getCredentialsInCache(); |
|||||||||||||||||||||||||
| 37 | |||||||||||||||||||||||||||
| 38 | 8 | if ($credential === null) { |
|||||||||||||||||||||||||
| 39 | 5 | $result = $this->request($timeout, $connectTimeout); |
|||||||||||||||||||||||||
| 40 | |||||||||||||||||||||||||||
| 41 | 4 | if (!isset($result['SessionAccessKey']['SessionAccessKeyId'], |
|||||||||||||||||||||||||
| 42 | 4 | $result['SessionAccessKey']['SessionAccessKeySecret'])) { |
|||||||||||||||||||||||||
| 43 | 1 | throw new ServerException($result, $this->error, SDK::INVALID_CREDENTIAL); |
|||||||||||||||||||||||||
| 44 | } |
||||||||||||||||||||||||||
| 45 | |||||||||||||||||||||||||||
| 46 | 3 | $credential = $result['SessionAccessKey']; |
|||||||||||||||||||||||||
| 47 | 3 | $this->cache($credential); |
|||||||||||||||||||||||||
|
0 ignored issues
–
show
Bug
introduced
by
Loading history...
|
|||||||||||||||||||||||||||
| 48 | 3 | } |
|||||||||||||||||||||||||
| 49 | |||||||||||||||||||||||||||
| 50 | 6 | return new StsCredential( |
|||||||||||||||||||||||||
| 51 | 6 | $credential['SessionAccessKeyId'], |
|||||||||||||||||||||||||
| 52 | 6 | $credential['SessionAccessKeySecret'] |
|||||||||||||||||||||||||
| 53 | 6 | ); |
|||||||||||||||||||||||||
| 54 | } |
||||||||||||||||||||||||||
| 55 | |||||||||||||||||||||||||||
| 56 | /** |
||||||||||||||||||||||||||
| 57 | * Get credentials by request. |
||||||||||||||||||||||||||
| 58 | * |
||||||||||||||||||||||||||
| 59 | * @param $timeout |
||||||||||||||||||||||||||
| 60 | * @param $connectTimeout |
||||||||||||||||||||||||||
| 61 | * |
||||||||||||||||||||||||||
| 62 | * @return Result |
||||||||||||||||||||||||||
| 63 | * @throws ClientException |
||||||||||||||||||||||||||
| 64 | * @throws ServerException |
||||||||||||||||||||||||||
| 65 | */ |
||||||||||||||||||||||||||
| 66 | 5 | private function request($timeout, $connectTimeout) |
|||||||||||||||||||||||||
| 67 | { |
||||||||||||||||||||||||||
| 68 | 5 | $clientName = __CLASS__ . \uniqid('rsa', true); |
|||||||||||||||||||||||||
| 69 | 5 | $credential = $this->client->getCredential(); |
|||||||||||||||||||||||||
| 70 | |||||||||||||||||||||||||||
| 71 | 5 | AlibabaCloud::client( |
|||||||||||||||||||||||||
| 72 | 5 | new AccessKeyCredential( |
|||||||||||||||||||||||||
| 73 | 5 | $credential->getPublicKeyId(), |
|||||||||||||||||||||||||
|
0 ignored issues
–
show
The method
getPublicKeyId() does not exist on AlibabaCloud\Client\Cred...ls\CredentialsInterface. It seems like you code against a sub-type of AlibabaCloud\Client\Cred...ls\CredentialsInterface such as AlibabaCloud\Client\Cred...ls\RsaKeyPairCredential.
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
Loading history...
The method
getPublicKeyId() does not exist on AlibabaCloud\Client\Cred...als\AccessKeyCredential.
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces. This is most likely a typographical error or the method has been renamed. Loading history...
The method
getPublicKeyId() does not exist on AlibabaCloud\Client\Cred...s\BearerTokenCredential.
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces. This is most likely a typographical error or the method has been renamed. Loading history...
The method
getPublicKeyId() does not exist on AlibabaCloud\Client\Cred...ls\EcsRamRoleCredential.
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces. This is most likely a typographical error or the method has been renamed. Loading history...
The method
getPublicKeyId() does not exist on AlibabaCloud\Client\Credentials\StsCredential.
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces. This is most likely a typographical error or the method has been renamed. Loading history...
The method
getPublicKeyId() does not exist on AlibabaCloud\Client\Cred...ls\RamRoleArnCredential.
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces. This is most likely a typographical error or the method has been renamed. Loading history...
|
|||||||||||||||||||||||||||
| 74 | 5 | $credential->getPrivateKey() |
|||||||||||||||||||||||||
|
0 ignored issues
–
show
The method
getPrivateKey() does not exist on AlibabaCloud\Client\Cred...ls\CredentialsInterface. It seems like you code against a sub-type of AlibabaCloud\Client\Cred...ls\CredentialsInterface such as AlibabaCloud\Client\Cred...ls\RsaKeyPairCredential.
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
Loading history...
The method
getPrivateKey() does not exist on AlibabaCloud\Client\Cred...als\AccessKeyCredential.
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces. This is most likely a typographical error or the method has been renamed. Loading history...
The method
getPrivateKey() does not exist on AlibabaCloud\Client\Cred...ls\EcsRamRoleCredential.
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces. This is most likely a typographical error or the method has been renamed. Loading history...
The method
getPrivateKey() does not exist on AlibabaCloud\Client\Cred...s\BearerTokenCredential.
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces. This is most likely a typographical error or the method has been renamed. Loading history...
The method
getPrivateKey() does not exist on AlibabaCloud\Client\Credentials\StsCredential.
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces. This is most likely a typographical error or the method has been renamed. Loading history...
The method
getPrivateKey() does not exist on AlibabaCloud\Client\Cred...ls\RamRoleArnCredential.
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces. This is most likely a typographical error or the method has been renamed. Loading history...
|
|||||||||||||||||||||||||||
| 75 | 5 | ), |
|||||||||||||||||||||||||
| 76 | 5 | new ShaHmac256WithRsaSignature() |
|||||||||||||||||||||||||
| 77 | 5 | )->name($clientName); |
|||||||||||||||||||||||||
| 78 | |||||||||||||||||||||||||||
| 79 | 5 | return (new GenerateSessionAccessKey($credential->getPublicKeyId())) |
|||||||||||||||||||||||||
| 80 | 5 | ->client($clientName) |
|||||||||||||||||||||||||
| 81 | 5 | ->timeout($timeout) |
|||||||||||||||||||||||||
| 82 | 5 | ->connectTimeout($connectTimeout) |
|||||||||||||||||||||||||
| 83 | 5 | ->debug($this->client->isDebug()) |
|||||||||||||||||||||||||
| 84 | 5 | ->request(); |
|||||||||||||||||||||||||
| 85 | } |
||||||||||||||||||||||||||
| 86 | } |
||||||||||||||||||||||||||
| 87 |