PluginProbe
Media Cloud Sync / 1.4.2
Media Cloud Sync v1.4.2
1.4.2 1.4.1 1.4.0 1.3.12 1.3.11 1.3.10 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.1.0 1.1.1 1.2.0 1.2.10 1.2.11 1.2.12 1.2.13 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 All 36 releases
← All changes | includes/sdk/s3/Aws/Signature/SignatureProvider.php +8 -3 1.2.8 → 1.4.2 View file →
@@ -2,8 +2,9 @@
2 2
3 3 namespace Dudlewebs\WPMCS\s3\Aws\Signature;
4 4
5 5 use Dudlewebs\WPMCS\s3\Aws\Exception\UnresolvedSignatureException;
6 +use Dudlewebs\WPMCS\s3\Aws\Token\BearerTokenAuthorization;
6 7 /**
7 8 * Signature providers.
8 9 *
9 10 * A signature provider is a function that accepts a version, service, and
@@ -39,9 +40,9 @@
39 40 * $nullValue = $c('???', 'abc', '123'); // Neither can handle this.
40 41 */
41 42 class SignatureProvider
42 43 {
43 - private static $s3v4SignedServices = ['s3' => \true, 's3control' => \true, 's3-object-lambda' => \true];
44 + private static $s3v4SignedServices = ['s3' => \true, 's3control' => \true, 's3-outposts' => \true, 's3-object-lambda' => \true, 's3express' => \true];
44 45 /**
45 46 * Resolves and signature provider and ensures a non-null return value.
46 47 *
47 48 * @param callable $provider Provider function to invoke.
@@ -54,9 +55,9 @@
54 55 */
55 56 public static function resolve(callable $provider, $version, $service, $region)
56 57 {
57 58 $result = $provider($version, $service, $region);
58 - if ($result instanceof SignatureInterface) {
59 + if ($result instanceof SignatureInterface || $result instanceof BearerTokenAuthorization) {
59 60 return $result;
60 61 }
61 62 throw new UnresolvedSignatureException("Unable to resolve a signature for {$version}/{$service}/{$region}.\n" . "Valid signature versions include v4 and anonymous.");
62 63 }
@@ -102,15 +103,19 @@
102 103 public static function version()
103 104 {
104 105 return function ($version, $service, $region) {
105 106 switch ($version) {
107 + case 'v4-s3express':
108 + return new S3ExpressSignature($service, $region);
106 109 case 's3v4':
107 110 case 'v4':
108 111 return !empty(self::$s3v4SignedServices[$service]) ? new S3SignatureV4($service, $region) : new SignatureV4($service, $region);
109 112 case 'v4a':
110 - return new SignatureV4($service, $region, ['use_v4a' => \true]);
113 + return !empty(self::$s3v4SignedServices[$service]) ? new S3SignatureV4($service, $region, ['use_v4a' => \true]) : new SignatureV4($service, $region, ['use_v4a' => \true]);
111 114 case 'v4-unsigned-body':
112 115 return !empty(self::$s3v4SignedServices[$service]) ? new S3SignatureV4($service, $region, ['unsigned-body' => 'true']) : new SignatureV4($service, $region, ['unsigned-body' => 'true']);
116 + case 'bearer':
117 + return new BearerTokenAuthorization();
113 118 case 'anonymous':
114 119 return new AnonymousSignature();
115 120 default:
116 121 return null;