PluginProbe ʕ •ᴥ•ʔ
Transferito: WP Migration / trunk
Transferito: WP Migration vtrunk
trunk 11.4.0 12.0.0 13.1.0 14.0.0 14.0.11 14.0.7 14.1.0 14.1.1 14.1.2 14.1.3 14.1.4
transferito / vendor / aws / aws-sdk-php / src / Credentials / Credentials.php
transferito / vendor / aws / aws-sdk-php / src / Credentials Last commit date
AssumeRoleCredentialProvider.php 11 months ago AssumeRoleWithWebIdentityCredentialProvider.php 11 months ago CredentialProvider.php 11 months ago Credentials.php 11 months ago CredentialsInterface.php 11 months ago EcsCredentialProvider.php 11 months ago InstanceProfileProvider.php 11 months ago
Credentials.php
120 lines
1 <?php
2 namespace Aws\Credentials;
3
4 /**
5 * Basic implementation of the AWS Credentials interface that allows callers to
6 * pass in the AWS Access Key and AWS Secret Access Key in the constructor.
7 */
8 class Credentials implements CredentialsInterface, \Serializable
9 {
10 private $key;
11 private $secret;
12 private $token;
13 private $expires;
14
15 /**
16 * Constructs a new BasicAWSCredentials object, with the specified AWS
17 * access key and AWS secret key
18 *
19 * @param string $key AWS access key ID
20 * @param string $secret AWS secret access key
21 * @param string $token Security token to use
22 * @param int $expires UNIX timestamp for when credentials expire
23 */
24 public function __construct($key, $secret, $token = null, $expires = null)
25 {
26 $this->key = trim($key);
27 $this->secret = trim($secret);
28 $this->token = $token;
29 $this->expires = $expires;
30 }
31
32 public static function __set_state(array $state)
33 {
34 return new self(
35 $state['key'],
36 $state['secret'],
37 $state['token'],
38 $state['expires']
39 );
40 }
41
42 public function getAccessKeyId()
43 {
44 return $this->key;
45 }
46
47 public function getSecretKey()
48 {
49 return $this->secret;
50 }
51
52 public function getSecurityToken()
53 {
54 return $this->token;
55 }
56
57 public function getExpiration()
58 {
59 return $this->expires;
60 }
61
62 public function isExpired()
63 {
64 return $this->expires !== null && time() >= $this->expires;
65 }
66
67 public function toArray()
68 {
69 return [
70 'key' => $this->key,
71 'secret' => $this->secret,
72 'token' => $this->token,
73 'expires' => $this->expires
74 ];
75 }
76
77 public function serialize()
78 {
79 return json_encode($this->__serialize());
80 }
81
82 public function unserialize($serialized)
83 {
84 $data = json_decode($serialized, true);
85
86 $this->__unserialize($data);
87 }
88
89 public function __serialize()
90 {
91 return $this->toArray();
92 }
93
94 public function __unserialize($data)
95 {
96 $this->key = $data['key'];
97 $this->secret = $data['secret'];
98 $this->token = $data['token'];
99 $this->expires = $data['expires'];
100 }
101
102 /**
103 * Internal-only. Used when IMDS is unreachable
104 * or returns expires credentials.
105 *
106 * @internal
107 */
108 public function extendExpiration() {
109 $extension = mt_rand(5, 10);
110 $this->expires = time() + $extension * 60;
111
112 $message = <<<EOT
113 Attempting credential expiration extension due to a credential service
114 availability issue. A refresh of these credentials will be attempted again
115 after {$extension} minutes.\n
116 EOT;
117 trigger_error($message, E_USER_WARNING);
118 }
119 }
120