@aws-sdk/middleware-signing 3.183.0 → 3.186.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,14 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [3.186.0](https://github.com/aws/aws-sdk-js-v3/compare/v3.185.0...v3.186.0) (2022-10-06)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @aws-sdk/middleware-signing
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
6
14
|
# [3.183.0](https://github.com/aws/aws-sdk-js-v3/compare/v3.182.0...v3.183.0) (2022-10-03)
|
|
7
15
|
|
|
8
16
|
**Note:** Version bump only for package @aws-sdk/middleware-signing
|
|
@@ -1,76 +1,78 @@
|
|
|
1
|
+
import { __assign, __awaiter, __generator, __read } from "tslib";
|
|
1
2
|
import { memoize } from "@aws-sdk/property-provider";
|
|
2
3
|
import { SignatureV4 } from "@aws-sdk/signature-v4";
|
|
3
4
|
import { normalizeProvider } from "@aws-sdk/util-middleware";
|
|
4
|
-
|
|
5
|
-
export
|
|
6
|
-
|
|
5
|
+
var CREDENTIAL_EXPIRE_WINDOW = 300000;
|
|
6
|
+
export var resolveAwsAuthConfig = function (input) {
|
|
7
|
+
var normalizedCreds = input.credentials
|
|
7
8
|
? normalizeCredentialProvider(input.credentials)
|
|
8
9
|
: input.credentialDefaultProvider(input);
|
|
9
|
-
|
|
10
|
-
|
|
10
|
+
var _a = input.signingEscapePath, signingEscapePath = _a === void 0 ? true : _a, _b = input.systemClockOffset, systemClockOffset = _b === void 0 ? input.systemClockOffset || 0 : _b, sha256 = input.sha256;
|
|
11
|
+
var signer;
|
|
11
12
|
if (input.signer) {
|
|
12
13
|
signer = normalizeProvider(input.signer);
|
|
13
14
|
}
|
|
14
15
|
else if (input.regionInfoProvider) {
|
|
15
|
-
signer = ()
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
16
|
+
signer = function () {
|
|
17
|
+
return normalizeProvider(input.region)()
|
|
18
|
+
.then(function (region) { return __awaiter(void 0, void 0, void 0, function () {
|
|
19
|
+
var _a, _b, _c;
|
|
20
|
+
var _d;
|
|
21
|
+
return __generator(this, function (_e) {
|
|
22
|
+
switch (_e.label) {
|
|
23
|
+
case 0:
|
|
24
|
+
_b = (_a = input).regionInfoProvider;
|
|
25
|
+
_c = [region];
|
|
26
|
+
_d = {};
|
|
27
|
+
return [4, input.useFipsEndpoint()];
|
|
28
|
+
case 1:
|
|
29
|
+
_d.useFipsEndpoint = _e.sent();
|
|
30
|
+
return [4, input.useDualstackEndpoint()];
|
|
31
|
+
case 2: return [4, _b.apply(_a, _c.concat([(_d.useDualstackEndpoint = _e.sent(),
|
|
32
|
+
_d)]))];
|
|
33
|
+
case 3: return [2, [
|
|
34
|
+
(_e.sent()) || {},
|
|
35
|
+
region
|
|
36
|
+
]];
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
}); })
|
|
40
|
+
.then(function (_a) {
|
|
41
|
+
var _b = __read(_a, 2), regionInfo = _b[0], region = _b[1];
|
|
42
|
+
var signingRegion = regionInfo.signingRegion, signingService = regionInfo.signingService;
|
|
43
|
+
input.signingRegion = input.signingRegion || signingRegion || region;
|
|
44
|
+
input.signingName = input.signingName || signingService || input.serviceId;
|
|
45
|
+
var params = __assign(__assign({}, input), { credentials: normalizedCreds, region: input.signingRegion, service: input.signingName, sha256: sha256, uriEscapePath: signingEscapePath });
|
|
46
|
+
var SignerCtor = input.signerConstructor || SignatureV4;
|
|
47
|
+
return new SignerCtor(params);
|
|
48
|
+
});
|
|
49
|
+
};
|
|
38
50
|
}
|
|
39
51
|
else {
|
|
40
|
-
signer =
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
credentials: normalizedCreds,
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
};
|
|
56
|
-
const SignerCtor = input.signerConstructor || SignatureV4;
|
|
57
|
-
return new SignerCtor(params);
|
|
58
|
-
};
|
|
52
|
+
signer = function (authScheme) { return __awaiter(void 0, void 0, void 0, function () {
|
|
53
|
+
var signingRegion, signingService, params, SignerCtor;
|
|
54
|
+
return __generator(this, function (_a) {
|
|
55
|
+
if (!authScheme) {
|
|
56
|
+
throw new Error("Unexpected empty auth scheme config");
|
|
57
|
+
}
|
|
58
|
+
signingRegion = authScheme.signingScope;
|
|
59
|
+
signingService = authScheme.signingName;
|
|
60
|
+
input.signingRegion = input.signingRegion || signingRegion;
|
|
61
|
+
input.signingName = input.signingName || signingService || input.serviceId;
|
|
62
|
+
params = __assign(__assign({}, input), { credentials: normalizedCreds, region: input.signingRegion, service: input.signingName, sha256: sha256, uriEscapePath: signingEscapePath });
|
|
63
|
+
SignerCtor = input.signerConstructor || SignatureV4;
|
|
64
|
+
return [2, new SignerCtor(params)];
|
|
65
|
+
});
|
|
66
|
+
}); };
|
|
59
67
|
}
|
|
60
|
-
return {
|
|
61
|
-
...input,
|
|
62
|
-
systemClockOffset,
|
|
63
|
-
signingEscapePath,
|
|
64
|
-
credentials: normalizedCreds,
|
|
65
|
-
signer,
|
|
66
|
-
};
|
|
68
|
+
return __assign(__assign({}, input), { systemClockOffset: systemClockOffset, signingEscapePath: signingEscapePath, credentials: normalizedCreds, signer: signer });
|
|
67
69
|
};
|
|
68
|
-
export
|
|
69
|
-
|
|
70
|
+
export var resolveSigV4AuthConfig = function (input) {
|
|
71
|
+
var normalizedCreds = input.credentials
|
|
70
72
|
? normalizeCredentialProvider(input.credentials)
|
|
71
73
|
: input.credentialDefaultProvider(input);
|
|
72
|
-
|
|
73
|
-
|
|
74
|
+
var _a = input.signingEscapePath, signingEscapePath = _a === void 0 ? true : _a, _b = input.systemClockOffset, systemClockOffset = _b === void 0 ? input.systemClockOffset || 0 : _b, sha256 = input.sha256;
|
|
75
|
+
var signer;
|
|
74
76
|
if (input.signer) {
|
|
75
77
|
signer = normalizeProvider(input.signer);
|
|
76
78
|
}
|
|
@@ -79,22 +81,18 @@ export const resolveSigV4AuthConfig = (input) => {
|
|
|
79
81
|
credentials: normalizedCreds,
|
|
80
82
|
region: input.region,
|
|
81
83
|
service: input.signingName,
|
|
82
|
-
sha256,
|
|
84
|
+
sha256: sha256,
|
|
83
85
|
uriEscapePath: signingEscapePath,
|
|
84
86
|
}));
|
|
85
87
|
}
|
|
86
|
-
return {
|
|
87
|
-
...input,
|
|
88
|
-
systemClockOffset,
|
|
89
|
-
signingEscapePath,
|
|
90
|
-
credentials: normalizedCreds,
|
|
91
|
-
signer,
|
|
92
|
-
};
|
|
88
|
+
return __assign(__assign({}, input), { systemClockOffset: systemClockOffset, signingEscapePath: signingEscapePath, credentials: normalizedCreds, signer: signer });
|
|
93
89
|
};
|
|
94
|
-
|
|
90
|
+
var normalizeCredentialProvider = function (credentials) {
|
|
95
91
|
if (typeof credentials === "function") {
|
|
96
|
-
return memoize(credentials, (credentials)
|
|
97
|
-
|
|
92
|
+
return memoize(credentials, function (credentials) {
|
|
93
|
+
return credentials.expiration !== undefined &&
|
|
94
|
+
credentials.expiration.getTime() - Date.now() < CREDENTIAL_EXPIRE_WINDOW;
|
|
95
|
+
}, function (credentials) { return credentials.expiration !== undefined; });
|
|
98
96
|
}
|
|
99
97
|
return normalizeProvider(credentials);
|
|
100
98
|
};
|
package/dist-es/middleware.js
CHANGED
|
@@ -1,42 +1,63 @@
|
|
|
1
|
+
import { __assign, __awaiter, __generator } from "tslib";
|
|
1
2
|
import { HttpRequest, HttpResponse } from "@aws-sdk/protocol-http";
|
|
2
3
|
import { getSkewCorrectedDate } from "./utils/getSkewCorrectedDate";
|
|
3
4
|
import { getUpdatedSystemClockOffset } from "./utils/getUpdatedSystemClockOffset";
|
|
4
|
-
export
|
|
5
|
-
|
|
6
|
-
return
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
5
|
+
export var awsAuthMiddleware = function (options) {
|
|
6
|
+
return function (next, context) {
|
|
7
|
+
return function (args) {
|
|
8
|
+
var _a, _b, _c;
|
|
9
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
10
|
+
var authScheme, signer, output, _d, _e, dateHeader;
|
|
11
|
+
var _f;
|
|
12
|
+
return __generator(this, function (_g) {
|
|
13
|
+
switch (_g.label) {
|
|
14
|
+
case 0:
|
|
15
|
+
if (!HttpRequest.isInstance(args.request))
|
|
16
|
+
return [2, next(args)];
|
|
17
|
+
authScheme = (_c = (_b = (_a = (context.endpointV2)) === null || _a === void 0 ? void 0 : _a.properties) === null || _b === void 0 ? void 0 : _b.authSchemes) === null || _c === void 0 ? void 0 : _c[0];
|
|
18
|
+
return [4, options.signer(authScheme)];
|
|
19
|
+
case 1:
|
|
20
|
+
signer = _g.sent();
|
|
21
|
+
_d = next;
|
|
22
|
+
_e = [__assign({}, args)];
|
|
23
|
+
_f = {};
|
|
24
|
+
return [4, signer.sign(args.request, {
|
|
25
|
+
signingDate: getSkewCorrectedDate(options.systemClockOffset),
|
|
26
|
+
signingRegion: context["signing_region"],
|
|
27
|
+
signingService: context["signing_service"],
|
|
28
|
+
})];
|
|
29
|
+
case 2: return [4, _d.apply(void 0, [__assign.apply(void 0, _e.concat([(_f.request = _g.sent(), _f)]))]).catch(function (error) {
|
|
30
|
+
var _a;
|
|
31
|
+
var serverTime = (_a = error.ServerTime) !== null && _a !== void 0 ? _a : getDateHeader(error.$response);
|
|
32
|
+
if (serverTime) {
|
|
33
|
+
options.systemClockOffset = getUpdatedSystemClockOffset(serverTime, options.systemClockOffset);
|
|
34
|
+
}
|
|
35
|
+
throw error;
|
|
36
|
+
})];
|
|
37
|
+
case 3:
|
|
38
|
+
output = _g.sent();
|
|
39
|
+
dateHeader = getDateHeader(output.response);
|
|
40
|
+
if (dateHeader) {
|
|
41
|
+
options.systemClockOffset = getUpdatedSystemClockOffset(dateHeader, options.systemClockOffset);
|
|
42
|
+
}
|
|
43
|
+
return [2, output];
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
};
|
|
48
|
+
};
|
|
28
49
|
};
|
|
29
|
-
|
|
30
|
-
export
|
|
50
|
+
var getDateHeader = function (response) { var _a, _b, _c; return HttpResponse.isInstance(response) ? (_b = (_a = response.headers) === null || _a === void 0 ? void 0 : _a.date) !== null && _b !== void 0 ? _b : (_c = response.headers) === null || _c === void 0 ? void 0 : _c.Date : undefined; };
|
|
51
|
+
export var awsAuthMiddlewareOptions = {
|
|
31
52
|
name: "awsAuthMiddleware",
|
|
32
53
|
tags: ["SIGNATURE", "AWSAUTH"],
|
|
33
54
|
relation: "after",
|
|
34
55
|
toMiddleware: "retryMiddleware",
|
|
35
56
|
override: true,
|
|
36
57
|
};
|
|
37
|
-
export
|
|
38
|
-
applyToStack: (clientStack)
|
|
58
|
+
export var getAwsAuthPlugin = function (options) { return ({
|
|
59
|
+
applyToStack: function (clientStack) {
|
|
39
60
|
clientStack.addRelativeTo(awsAuthMiddleware(options), awsAuthMiddlewareOptions);
|
|
40
61
|
},
|
|
41
|
-
});
|
|
42
|
-
export
|
|
62
|
+
}); };
|
|
63
|
+
export var getSigV4AuthPlugin = getAwsAuthPlugin;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export
|
|
1
|
+
export var getSkewCorrectedDate = function (systemClockOffset) { return new Date(Date.now() + systemClockOffset); };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { isClockSkewed } from "./isClockSkewed";
|
|
2
|
-
export
|
|
3
|
-
|
|
2
|
+
export var getUpdatedSystemClockOffset = function (clockTime, currentSystemClockOffset) {
|
|
3
|
+
var clockTimeInMs = Date.parse(clockTime);
|
|
4
4
|
if (isClockSkewed(clockTimeInMs, currentSystemClockOffset)) {
|
|
5
5
|
return clockTimeInMs - Date.now();
|
|
6
6
|
}
|
|
@@ -1,2 +1,4 @@
|
|
|
1
1
|
import { getSkewCorrectedDate } from "./getSkewCorrectedDate";
|
|
2
|
-
export
|
|
2
|
+
export var isClockSkewed = function (clockTime, systemClockOffset) {
|
|
3
|
+
return Math.abs(getSkewCorrectedDate(systemClockOffset).getTime() - clockTime) >= 300000;
|
|
4
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-sdk/middleware-signing",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.186.0",
|
|
4
4
|
"scripts": {
|
|
5
5
|
"build": "concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types'",
|
|
6
6
|
"build:cjs": "tsc -p tsconfig.cjs.json",
|
|
@@ -20,11 +20,11 @@
|
|
|
20
20
|
},
|
|
21
21
|
"license": "Apache-2.0",
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@aws-sdk/property-provider": "3.
|
|
24
|
-
"@aws-sdk/protocol-http": "3.
|
|
25
|
-
"@aws-sdk/signature-v4": "3.
|
|
26
|
-
"@aws-sdk/types": "3.
|
|
27
|
-
"@aws-sdk/util-middleware": "3.
|
|
23
|
+
"@aws-sdk/property-provider": "3.186.0",
|
|
24
|
+
"@aws-sdk/protocol-http": "3.186.0",
|
|
25
|
+
"@aws-sdk/signature-v4": "3.186.0",
|
|
26
|
+
"@aws-sdk/types": "3.186.0",
|
|
27
|
+
"@aws-sdk/util-middleware": "3.186.0",
|
|
28
28
|
"tslib": "^2.3.1"
|
|
29
29
|
},
|
|
30
30
|
"engines": {
|