@azure/msal-common 5.2.0 → 6.2.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/dist/_virtual/_tslib.js +1 -1
- package/dist/account/AuthToken.js +1 -1
- package/dist/account/CcsCredential.js +1 -1
- package/dist/account/ClientInfo.js +1 -1
- package/dist/account/TokenClaims.d.ts +1 -0
- package/dist/account/TokenClaims.d.ts.map +1 -1
- package/dist/authority/Authority.d.ts +9 -1
- package/dist/authority/Authority.d.ts.map +1 -1
- package/dist/authority/Authority.js +36 -11
- package/dist/authority/Authority.js.map +1 -1
- package/dist/authority/AuthorityFactory.d.ts +2 -2
- package/dist/authority/AuthorityFactory.d.ts.map +1 -1
- package/dist/authority/AuthorityFactory.js +5 -5
- package/dist/authority/AuthorityFactory.js.map +1 -1
- package/dist/authority/AuthorityOptions.d.ts +8 -0
- package/dist/authority/AuthorityOptions.d.ts.map +1 -1
- package/dist/authority/AuthorityOptions.js +24 -0
- package/dist/authority/AuthorityOptions.js.map +1 -0
- package/dist/authority/AuthorityType.js +1 -1
- package/dist/authority/CloudInstanceDiscoveryResponse.js +1 -1
- package/dist/authority/ImdsOptions.d.ts +7 -0
- package/dist/authority/ImdsOptions.d.ts.map +1 -0
- package/dist/authority/OpenIdConfigResponse.js +1 -1
- package/dist/authority/ProtocolMode.js +1 -1
- package/dist/authority/RegionDiscovery.d.ts +3 -6
- package/dist/authority/RegionDiscovery.d.ts.map +1 -1
- package/dist/authority/RegionDiscovery.js +19 -11
- package/dist/authority/RegionDiscovery.js.map +1 -1
- package/dist/cache/CacheManager.d.ts +9 -5
- package/dist/cache/CacheManager.d.ts.map +1 -1
- package/dist/cache/CacheManager.js +39 -29
- package/dist/cache/CacheManager.js.map +1 -1
- package/dist/cache/entities/AccessTokenEntity.d.ts +3 -1
- package/dist/cache/entities/AccessTokenEntity.d.ts.map +1 -1
- package/dist/cache/entities/AccessTokenEntity.js +13 -6
- package/dist/cache/entities/AccessTokenEntity.js.map +1 -1
- package/dist/cache/entities/AccountEntity.js +10 -10
- package/dist/cache/entities/AccountEntity.js.map +1 -1
- package/dist/cache/entities/AppMetadataEntity.js +1 -1
- package/dist/cache/entities/AuthorityMetadataEntity.js +1 -1
- package/dist/cache/entities/CacheRecord.js +1 -1
- package/dist/cache/entities/CredentialEntity.d.ts +12 -2
- package/dist/cache/entities/CredentialEntity.d.ts.map +1 -1
- package/dist/cache/entities/CredentialEntity.js +27 -12
- package/dist/cache/entities/CredentialEntity.js.map +1 -1
- package/dist/cache/entities/IdTokenEntity.js +1 -1
- package/dist/cache/entities/RefreshTokenEntity.js +1 -1
- package/dist/cache/entities/ServerTelemetryEntity.js +1 -1
- package/dist/cache/entities/ThrottlingEntity.js +1 -1
- package/dist/cache/persistence/TokenCacheContext.js +1 -1
- package/dist/cache/utils/CacheTypes.d.ts +1 -0
- package/dist/cache/utils/CacheTypes.d.ts.map +1 -1
- package/dist/client/AuthorizationCodeClient.d.ts.map +1 -1
- package/dist/client/AuthorizationCodeClient.js +7 -2
- package/dist/client/AuthorizationCodeClient.js.map +1 -1
- package/dist/client/BaseClient.js +2 -2
- package/dist/client/BaseClient.js.map +1 -1
- package/dist/client/ClientCredentialClient.d.ts.map +1 -1
- package/dist/client/ClientCredentialClient.js +5 -4
- package/dist/client/ClientCredentialClient.js.map +1 -1
- package/dist/client/DeviceCodeClient.d.ts.map +1 -1
- package/dist/client/DeviceCodeClient.js +6 -4
- package/dist/client/DeviceCodeClient.js.map +1 -1
- package/dist/client/OnBehalfOfClient.js +4 -3
- package/dist/client/OnBehalfOfClient.js.map +1 -1
- package/dist/client/RefreshTokenClient.js +3 -2
- package/dist/client/RefreshTokenClient.js.map +1 -1
- package/dist/client/SilentFlowClient.d.ts.map +1 -1
- package/dist/client/SilentFlowClient.js +4 -13
- package/dist/client/SilentFlowClient.js.map +1 -1
- package/dist/client/UsernamePasswordClient.js +3 -2
- package/dist/client/UsernamePasswordClient.js.map +1 -1
- package/dist/config/ClientConfiguration.d.ts +29 -1
- package/dist/config/ClientConfiguration.d.ts.map +1 -1
- package/dist/config/ClientConfiguration.js +21 -8
- package/dist/config/ClientConfiguration.js.map +1 -1
- package/dist/crypto/ICrypto.d.ts +9 -2
- package/dist/crypto/ICrypto.d.ts.map +1 -1
- package/dist/crypto/ICrypto.js +10 -1
- package/dist/crypto/ICrypto.js.map +1 -1
- package/dist/crypto/IGuidGenerator.d.ts +5 -0
- package/dist/crypto/IGuidGenerator.d.ts.map +1 -0
- package/dist/crypto/PopTokenGenerator.js +2 -2
- package/dist/crypto/PopTokenGenerator.js.map +1 -1
- package/dist/error/AuthError.js +3 -3
- package/dist/error/AuthError.js.map +1 -1
- package/dist/error/ClientAuthError.js +1 -1
- package/dist/error/ClientConfigurationError.d.ts +11 -0
- package/dist/error/ClientConfigurationError.d.ts.map +1 -1
- package/dist/error/ClientConfigurationError.js +12 -2
- package/dist/error/ClientConfigurationError.js.map +1 -1
- package/dist/error/InteractionRequiredAuthError.js +1 -1
- package/dist/error/ServerError.js +1 -1
- package/dist/index.cjs.js +666 -140
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.d.ts +8 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/logger/Logger.js +13 -13
- package/dist/logger/Logger.js.map +1 -1
- package/dist/network/INetworkModule.d.ts +1 -0
- package/dist/network/INetworkModule.d.ts.map +1 -1
- package/dist/network/INetworkModule.js +1 -1
- package/dist/network/INetworkModule.js.map +1 -1
- package/dist/network/NetworkManager.js +1 -1
- package/dist/network/RequestThumbprint.d.ts +1 -1
- package/dist/network/RequestThumbprint.d.ts.map +1 -1
- package/dist/network/ThrottlingUtils.js +2 -2
- package/dist/network/ThrottlingUtils.js.map +1 -1
- package/dist/packageMetadata.d.ts +1 -1
- package/dist/packageMetadata.js +2 -2
- package/dist/packageMetadata.js.map +1 -1
- package/dist/request/AuthenticationHeaderParser.js +3 -3
- package/dist/request/AuthenticationHeaderParser.js.map +1 -1
- package/dist/request/BaseAuthRequest.d.ts +10 -5
- package/dist/request/BaseAuthRequest.d.ts.map +1 -1
- package/dist/request/CommonEndSessionRequest.d.ts +2 -0
- package/dist/request/CommonEndSessionRequest.d.ts.map +1 -1
- package/dist/request/RequestParameterBuilder.d.ts +10 -1
- package/dist/request/RequestParameterBuilder.d.ts.map +1 -1
- package/dist/request/RequestParameterBuilder.js +25 -3
- package/dist/request/RequestParameterBuilder.js.map +1 -1
- package/dist/request/RequestValidator.js +1 -1
- package/dist/request/ScopeSet.js +4 -4
- package/dist/request/ScopeSet.js.map +1 -1
- package/dist/response/ResponseHandler.d.ts.map +1 -1
- package/dist/response/ResponseHandler.js +8 -8
- package/dist/response/ResponseHandler.js.map +1 -1
- package/dist/telemetry/performance/IPerformanceClient.d.ts +22 -0
- package/dist/telemetry/performance/IPerformanceClient.d.ts.map +1 -0
- package/dist/telemetry/performance/IPerformanceMeasurement.d.ts +6 -0
- package/dist/telemetry/performance/IPerformanceMeasurement.d.ts.map +1 -0
- package/dist/telemetry/performance/PerformanceClient.d.ts +125 -0
- package/dist/telemetry/performance/PerformanceClient.d.ts.map +1 -0
- package/dist/telemetry/performance/PerformanceClient.js +275 -0
- package/dist/telemetry/performance/PerformanceClient.js.map +1 -0
- package/dist/telemetry/performance/PerformanceEvent.d.ts +182 -0
- package/dist/telemetry/performance/PerformanceEvent.d.ts.map +1 -0
- package/dist/telemetry/performance/PerformanceEvent.js +85 -0
- package/dist/telemetry/performance/PerformanceEvent.js.map +1 -0
- package/dist/telemetry/performance/StubPerformanceClient.d.ts +13 -0
- package/dist/telemetry/performance/StubPerformanceClient.d.ts.map +1 -0
- package/dist/telemetry/performance/StubPerformanceClient.js +37 -0
- package/dist/telemetry/performance/StubPerformanceClient.js.map +1 -0
- package/dist/telemetry/server/ServerTelemetryManager.js +4 -4
- package/dist/telemetry/server/ServerTelemetryManager.js.map +1 -1
- package/dist/url/UrlString.js +2 -2
- package/dist/url/UrlString.js.map +1 -1
- package/dist/utils/Constants.d.ts +5 -1
- package/dist/utils/Constants.d.ts.map +1 -1
- package/dist/utils/Constants.js +5 -1
- package/dist/utils/Constants.js.map +1 -1
- package/dist/utils/ProtocolUtils.js +3 -3
- package/dist/utils/ProtocolUtils.js.map +1 -1
- package/dist/utils/StringUtils.js +1 -1
- package/dist/utils/TimeUtils.js +1 -1
- package/package.json +2 -4
- package/CHANGELOG.json +0 -1259
- package/CHANGELOG.md +0 -479
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @azure/msal-common
|
|
1
|
+
/*! @azure/msal-common v6.2.0 2022-04-04 */
|
|
2
2
|
'use strict';
|
|
3
3
|
import { __awaiter, __generator } from '../_virtual/_tslib.js';
|
|
4
4
|
import { RegionDiscoverySources, ResponseCodes, Constants } from '../utils/Constants.js';
|
|
@@ -16,18 +16,22 @@ var RegionDiscovery = /** @class */ (function () {
|
|
|
16
16
|
*
|
|
17
17
|
* @returns Promise<string | null>
|
|
18
18
|
*/
|
|
19
|
-
RegionDiscovery.prototype.detectRegion = function (environmentRegion, regionDiscoveryMetadata) {
|
|
19
|
+
RegionDiscovery.prototype.detectRegion = function (environmentRegion, regionDiscoveryMetadata, proxyUrl) {
|
|
20
20
|
return __awaiter(this, void 0, void 0, function () {
|
|
21
|
-
var autodetectedRegionName, localIMDSVersionResponse, currentIMDSVersion, currentIMDSVersionResponse;
|
|
21
|
+
var autodetectedRegionName, options, localIMDSVersionResponse, currentIMDSVersion, currentIMDSVersionResponse;
|
|
22
22
|
return __generator(this, function (_a) {
|
|
23
23
|
switch (_a.label) {
|
|
24
24
|
case 0:
|
|
25
25
|
autodetectedRegionName = environmentRegion;
|
|
26
26
|
if (!!autodetectedRegionName) return [3 /*break*/, 8];
|
|
27
|
+
options = RegionDiscovery.IMDS_OPTIONS;
|
|
28
|
+
if (proxyUrl) {
|
|
29
|
+
options.proxyUrl = proxyUrl;
|
|
30
|
+
}
|
|
27
31
|
_a.label = 1;
|
|
28
32
|
case 1:
|
|
29
33
|
_a.trys.push([1, 6, , 7]);
|
|
30
|
-
return [4 /*yield*/, this.getRegionFromIMDS(Constants.IMDS_VERSION)];
|
|
34
|
+
return [4 /*yield*/, this.getRegionFromIMDS(Constants.IMDS_VERSION, options)];
|
|
31
35
|
case 2:
|
|
32
36
|
localIMDSVersionResponse = _a.sent();
|
|
33
37
|
if (localIMDSVersionResponse.status === ResponseCodes.httpSuccess) {
|
|
@@ -35,14 +39,14 @@ var RegionDiscovery = /** @class */ (function () {
|
|
|
35
39
|
regionDiscoveryMetadata.region_source = RegionDiscoverySources.IMDS;
|
|
36
40
|
}
|
|
37
41
|
if (!(localIMDSVersionResponse.status === ResponseCodes.httpBadRequest)) return [3 /*break*/, 5];
|
|
38
|
-
return [4 /*yield*/, this.getCurrentVersion()];
|
|
42
|
+
return [4 /*yield*/, this.getCurrentVersion(options)];
|
|
39
43
|
case 3:
|
|
40
44
|
currentIMDSVersion = _a.sent();
|
|
41
45
|
if (!currentIMDSVersion) {
|
|
42
46
|
regionDiscoveryMetadata.region_source = RegionDiscoverySources.FAILED_AUTO_DETECTION;
|
|
43
47
|
return [2 /*return*/, null];
|
|
44
48
|
}
|
|
45
|
-
return [4 /*yield*/, this.getRegionFromIMDS(currentIMDSVersion)];
|
|
49
|
+
return [4 /*yield*/, this.getRegionFromIMDS(currentIMDSVersion, options)];
|
|
46
50
|
case 4:
|
|
47
51
|
currentIMDSVersionResponse = _a.sent();
|
|
48
52
|
if (currentIMDSVersionResponse.status === ResponseCodes.httpSuccess) {
|
|
@@ -75,10 +79,10 @@ var RegionDiscovery = /** @class */ (function () {
|
|
|
75
79
|
* @param imdsEndpointUrl
|
|
76
80
|
* @returns Promise<NetworkResponse<string>>
|
|
77
81
|
*/
|
|
78
|
-
RegionDiscovery.prototype.getRegionFromIMDS = function (version) {
|
|
82
|
+
RegionDiscovery.prototype.getRegionFromIMDS = function (version, options) {
|
|
79
83
|
return __awaiter(this, void 0, void 0, function () {
|
|
80
84
|
return __generator(this, function (_a) {
|
|
81
|
-
return [2 /*return*/, this.networkInterface.sendGetRequestAsync(Constants.IMDS_ENDPOINT + "?api-version=" + version + "&format=text",
|
|
85
|
+
return [2 /*return*/, this.networkInterface.sendGetRequestAsync(Constants.IMDS_ENDPOINT + "?api-version=" + version + "&format=text", options, Constants.IMDS_TIMEOUT)];
|
|
82
86
|
});
|
|
83
87
|
});
|
|
84
88
|
};
|
|
@@ -87,14 +91,14 @@ var RegionDiscovery = /** @class */ (function () {
|
|
|
87
91
|
*
|
|
88
92
|
* @returns Promise<string | null>
|
|
89
93
|
*/
|
|
90
|
-
RegionDiscovery.prototype.getCurrentVersion = function () {
|
|
94
|
+
RegionDiscovery.prototype.getCurrentVersion = function (options) {
|
|
91
95
|
return __awaiter(this, void 0, void 0, function () {
|
|
92
96
|
var response;
|
|
93
97
|
return __generator(this, function (_a) {
|
|
94
98
|
switch (_a.label) {
|
|
95
99
|
case 0:
|
|
96
100
|
_a.trys.push([0, 2, , 3]);
|
|
97
|
-
return [4 /*yield*/, this.networkInterface.sendGetRequestAsync(Constants.IMDS_ENDPOINT + "?format=json",
|
|
101
|
+
return [4 /*yield*/, this.networkInterface.sendGetRequestAsync(Constants.IMDS_ENDPOINT + "?format=json", options)];
|
|
98
102
|
case 1:
|
|
99
103
|
response = _a.sent();
|
|
100
104
|
// When IMDS endpoint is called without the api version query param, bad request response comes back with latest version.
|
|
@@ -111,7 +115,11 @@ var RegionDiscovery = /** @class */ (function () {
|
|
|
111
115
|
});
|
|
112
116
|
};
|
|
113
117
|
// Options for the IMDS endpoint request
|
|
114
|
-
RegionDiscovery.IMDS_OPTIONS = {
|
|
118
|
+
RegionDiscovery.IMDS_OPTIONS = {
|
|
119
|
+
headers: {
|
|
120
|
+
Metadata: "true",
|
|
121
|
+
},
|
|
122
|
+
};
|
|
115
123
|
return RegionDiscovery;
|
|
116
124
|
}());
|
|
117
125
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RegionDiscovery.js","sources":["../../src/authority/RegionDiscovery.ts"],"sourcesContent":["/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { INetworkModule } from \"../network/INetworkModule\";\nimport { NetworkResponse } from \"../network/NetworkManager\";\nimport { IMDSBadResponse } from \"../response/IMDSBadResponse\";\nimport { Constants, RegionDiscoverySources, ResponseCodes } from \"../utils/Constants\";\nimport { RegionDiscoveryMetadata } from \"./RegionDiscoveryMetadata\";\n\nexport class RegionDiscovery {\n // Network interface to make requests with.\n protected networkInterface: INetworkModule;\n // Options for the IMDS endpoint request\n protected static IMDS_OPTIONS = {headers: {\
|
|
1
|
+
{"version":3,"file":"RegionDiscovery.js","sources":["../../src/authority/RegionDiscovery.ts"],"sourcesContent":["/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { INetworkModule } from \"../network/INetworkModule\";\nimport { NetworkResponse } from \"../network/NetworkManager\";\nimport { IMDSBadResponse } from \"../response/IMDSBadResponse\";\nimport { Constants, RegionDiscoverySources, ResponseCodes } from \"../utils/Constants\";\nimport { RegionDiscoveryMetadata } from \"./RegionDiscoveryMetadata\";\nimport { ImdsOptions } from \"./ImdsOptions\";\n\nexport class RegionDiscovery {\n // Network interface to make requests with.\n protected networkInterface: INetworkModule;\n // Options for the IMDS endpoint request\n protected static IMDS_OPTIONS: ImdsOptions = {\n headers: {\n Metadata: \"true\",\n },\n };\n\n constructor(networkInterface: INetworkModule) {\n this.networkInterface = networkInterface;\n }\n\n /**\n * Detect the region from the application's environment.\n * \n * @returns Promise<string | null>\n */\n public async detectRegion(environmentRegion: string | undefined, regionDiscoveryMetadata: RegionDiscoveryMetadata, proxyUrl: string): Promise<string | null> {\n // Initialize auto detected region with the region from the envrionment \n let autodetectedRegionName = environmentRegion;\n\n // Check if a region was detected from the environment, if not, attempt to get the region from IMDS \n if (!autodetectedRegionName) {\n const options = RegionDiscovery.IMDS_OPTIONS;\n if (proxyUrl) {\n options.proxyUrl = proxyUrl;\n }\n\n try {\n const localIMDSVersionResponse = await this.getRegionFromIMDS(Constants.IMDS_VERSION, options);\n if (localIMDSVersionResponse.status === ResponseCodes.httpSuccess) {\n autodetectedRegionName = localIMDSVersionResponse.body;\n regionDiscoveryMetadata.region_source = RegionDiscoverySources.IMDS;\n } \n \n // If the response using the local IMDS version failed, try to fetch the current version of IMDS and retry. \n if (localIMDSVersionResponse.status === ResponseCodes.httpBadRequest) {\n const currentIMDSVersion = await this.getCurrentVersion(options);\n if (!currentIMDSVersion) {\n regionDiscoveryMetadata.region_source = RegionDiscoverySources.FAILED_AUTO_DETECTION;\n return null;\n }\n\n const currentIMDSVersionResponse = await this.getRegionFromIMDS(currentIMDSVersion, options);\n if (currentIMDSVersionResponse.status === ResponseCodes.httpSuccess) {\n autodetectedRegionName = currentIMDSVersionResponse.body;\n regionDiscoveryMetadata.region_source = RegionDiscoverySources.IMDS;\n }\n }\n } catch(e) {\n regionDiscoveryMetadata.region_source = RegionDiscoverySources.FAILED_AUTO_DETECTION;\n return null;\n } \n } else {\n regionDiscoveryMetadata.region_source = RegionDiscoverySources.ENVIRONMENT_VARIABLE;\n }\n\n // If no region was auto detected from the environment or from the IMDS endpoint, mark the attempt as a FAILED_AUTO_DETECTION\n if (!autodetectedRegionName) {\n regionDiscoveryMetadata.region_source = RegionDiscoverySources.FAILED_AUTO_DETECTION;\n }\n\n return autodetectedRegionName || null;\n }\n\n /**\n * Make the call to the IMDS endpoint\n * \n * @param imdsEndpointUrl\n * @returns Promise<NetworkResponse<string>>\n */\n private async getRegionFromIMDS(version: string, options: ImdsOptions): Promise<NetworkResponse<string>> {\n return this.networkInterface.sendGetRequestAsync<string>(`${Constants.IMDS_ENDPOINT}?api-version=${version}&format=text`, options, Constants.IMDS_TIMEOUT);\n }\n\n /**\n * Get the most recent version of the IMDS endpoint available\n * \n * @returns Promise<string | null>\n */\n private async getCurrentVersion(options: ImdsOptions): Promise<string | null> {\n try {\n const response = await this.networkInterface.sendGetRequestAsync<IMDSBadResponse>(`${Constants.IMDS_ENDPOINT}?format=json`, options);\n\n // When IMDS endpoint is called without the api version query param, bad request response comes back with latest version.\n if (response.status === ResponseCodes.httpBadRequest && response.body && response.body[\"newest-versions\"] && response.body[\"newest-versions\"].length > 0) {\n return response.body[\"newest-versions\"][0];\n }\n\n return null;\n } catch (e) {\n return null;\n }\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import { AccountCache, AccountFilter, CredentialFilter, CredentialCache, AppMetadataFilter, AppMetadataCache } from "./utils/CacheTypes";
|
|
1
|
+
import { AccountCache, AccountFilter, CredentialFilter, CredentialCache, ValidCredentialType, AppMetadataFilter, AppMetadataCache } from "./utils/CacheTypes";
|
|
2
2
|
import { CacheRecord } from "./entities/CacheRecord";
|
|
3
|
-
import { AuthenticationScheme } from "../utils/Constants";
|
|
4
3
|
import { CredentialEntity } from "./entities/CredentialEntity";
|
|
5
|
-
import { ScopeSet } from "../request/ScopeSet";
|
|
6
4
|
import { AccountEntity } from "./entities/AccountEntity";
|
|
7
5
|
import { AccessTokenEntity } from "./entities/AccessTokenEntity";
|
|
8
6
|
import { IdTokenEntity } from "./entities/IdTokenEntity";
|
|
@@ -14,6 +12,7 @@ import { ServerTelemetryEntity } from "./entities/ServerTelemetryEntity";
|
|
|
14
12
|
import { ThrottlingEntity } from "./entities/ThrottlingEntity";
|
|
15
13
|
import { ICrypto } from "../crypto/ICrypto";
|
|
16
14
|
import { AuthorityMetadataEntity } from "./entities/AuthorityMetadataEntity";
|
|
15
|
+
import { BaseAuthRequest } from "../request/BaseAuthRequest";
|
|
17
16
|
/**
|
|
18
17
|
* Interface class which implement cache storage functions used by MSAL to perform validity checks, and store tokens.
|
|
19
18
|
*/
|
|
@@ -126,6 +125,10 @@ export declare abstract class CacheManager implements ICacheManager {
|
|
|
126
125
|
* Function which clears cache.
|
|
127
126
|
*/
|
|
128
127
|
abstract clear(): Promise<void>;
|
|
128
|
+
/**
|
|
129
|
+
* Function which updates an outdated credential cache key
|
|
130
|
+
*/
|
|
131
|
+
abstract updateCredentialCacheKey(currentCacheKey: string, credential: ValidCredentialType): string;
|
|
129
132
|
/**
|
|
130
133
|
* Returns all accounts in cache
|
|
131
134
|
*/
|
|
@@ -225,7 +228,7 @@ export declare abstract class CacheManager implements ICacheManager {
|
|
|
225
228
|
* @param environment
|
|
226
229
|
* @param authScheme
|
|
227
230
|
*/
|
|
228
|
-
readCacheRecord(account: AccountInfo, clientId: string,
|
|
231
|
+
readCacheRecord(account: AccountInfo, clientId: string, request: BaseAuthRequest, environment: string): CacheRecord;
|
|
229
232
|
/**
|
|
230
233
|
* Retrieve AccountEntity from cache
|
|
231
234
|
* @param account
|
|
@@ -245,7 +248,7 @@ export declare abstract class CacheManager implements ICacheManager {
|
|
|
245
248
|
* @param scopes
|
|
246
249
|
* @param authScheme
|
|
247
250
|
*/
|
|
248
|
-
readAccessTokenFromCache(clientId: string, account: AccountInfo,
|
|
251
|
+
readAccessTokenFromCache(clientId: string, account: AccountInfo, request: BaseAuthRequest): AccessTokenEntity | null;
|
|
249
252
|
/**
|
|
250
253
|
* Helper to retrieve the appropriate refresh token from cache
|
|
251
254
|
* @param clientId
|
|
@@ -372,5 +375,6 @@ export declare class DefaultStorageClass extends CacheManager {
|
|
|
372
375
|
containsKey(): boolean;
|
|
373
376
|
getKeys(): string[];
|
|
374
377
|
clear(): Promise<void>;
|
|
378
|
+
updateCredentialCacheKey(): string;
|
|
375
379
|
}
|
|
376
380
|
//# sourceMappingURL=CacheManager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CacheManager.d.ts","sourceRoot":"","sources":["../../src/cache/CacheManager.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"CacheManager.d.ts","sourceRoot":"","sources":["../../src/cache/CacheManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @azure/msal-common
|
|
1
|
+
/*! @azure/msal-common v6.2.0 2022-04-04 */
|
|
2
2
|
'use strict';
|
|
3
3
|
import { __awaiter, __generator, __extends } from '../_virtual/_tslib.js';
|
|
4
4
|
import { Constants, CredentialType, AuthenticationScheme, CacheSchemaType, THE_FAMILY_ID, APP_METADATA, AUTHORITY_METADATA_CONSTANTS } from '../utils/Constants.js';
|
|
@@ -97,7 +97,8 @@ var CacheManager = /** @class */ (function () {
|
|
|
97
97
|
environment: credential.environment,
|
|
98
98
|
homeAccountId: credential.homeAccountId,
|
|
99
99
|
realm: credential.realm,
|
|
100
|
-
tokenType: credential.tokenType
|
|
100
|
+
tokenType: credential.tokenType,
|
|
101
|
+
requestedClaimsHash: credential.requestedClaimsHash
|
|
101
102
|
});
|
|
102
103
|
currentScopes = ScopeSet.fromString(credential.target);
|
|
103
104
|
currentAccessTokens = Object.keys(currentTokenCache.accessTokens).map(function (key) { return currentTokenCache.accessTokens[key]; });
|
|
@@ -128,7 +129,7 @@ var CacheManager = /** @class */ (function () {
|
|
|
128
129
|
* @param realm
|
|
129
130
|
*/
|
|
130
131
|
CacheManager.prototype.getAccountsFilteredBy = function (accountFilter) {
|
|
131
|
-
return this.getAccountsFilteredByInternal(accountFilter ? accountFilter.homeAccountId :
|
|
132
|
+
return this.getAccountsFilteredByInternal(accountFilter ? accountFilter.homeAccountId : Constants.EMPTY_STRING, accountFilter ? accountFilter.environment : Constants.EMPTY_STRING, accountFilter ? accountFilter.realm : Constants.EMPTY_STRING);
|
|
132
133
|
};
|
|
133
134
|
/**
|
|
134
135
|
* retrieve accounts matching all provided filters; if no filter is set, get all accounts
|
|
@@ -169,7 +170,7 @@ var CacheManager = /** @class */ (function () {
|
|
|
169
170
|
* @param target
|
|
170
171
|
*/
|
|
171
172
|
CacheManager.prototype.getCredentialsFilteredBy = function (filter) {
|
|
172
|
-
return this.getCredentialsFilteredByInternal(filter.homeAccountId, filter.environment, filter.credentialType, filter.clientId, filter.familyId, filter.realm, filter.target, filter.oboAssertion, filter.tokenType, filter.keyId);
|
|
173
|
+
return this.getCredentialsFilteredByInternal(filter.homeAccountId, filter.environment, filter.credentialType, filter.clientId, filter.familyId, filter.realm, filter.target, filter.oboAssertion, filter.tokenType, filter.keyId, filter.requestedClaimsHash);
|
|
173
174
|
};
|
|
174
175
|
/**
|
|
175
176
|
* Support function to help match credentials
|
|
@@ -182,7 +183,7 @@ var CacheManager = /** @class */ (function () {
|
|
|
182
183
|
* @param oboAssertion
|
|
183
184
|
* @param tokenType
|
|
184
185
|
*/
|
|
185
|
-
CacheManager.prototype.getCredentialsFilteredByInternal = function (homeAccountId, environment, credentialType, clientId, familyId, realm, target, oboAssertion, tokenType, keyId) {
|
|
186
|
+
CacheManager.prototype.getCredentialsFilteredByInternal = function (homeAccountId, environment, credentialType, clientId, familyId, realm, target, oboAssertion, tokenType, keyId, requestedClaimsHash) {
|
|
186
187
|
var _this = this;
|
|
187
188
|
var allCacheKeys = this.getKeys();
|
|
188
189
|
var matchingCredentials = {
|
|
@@ -229,38 +230,37 @@ var CacheManager = /** @class */ (function () {
|
|
|
229
230
|
if (!!target && !_this.matchTarget(entity, target)) {
|
|
230
231
|
return;
|
|
231
232
|
}
|
|
233
|
+
// If request OR cached entity has requested Claims Hash, check if they match
|
|
234
|
+
if (requestedClaimsHash || entity.requestedClaimsHash) {
|
|
235
|
+
// Don't match if either is undefined or they are different
|
|
236
|
+
if (entity.requestedClaimsHash !== requestedClaimsHash) {
|
|
237
|
+
return;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
232
240
|
// Access Token with Auth Scheme specific matching
|
|
233
241
|
if (credentialType === CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME) {
|
|
234
242
|
if (!!tokenType && !_this.matchTokenType(entity, tokenType)) {
|
|
235
243
|
return;
|
|
236
244
|
}
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
_this.removeItem(cacheKey, CacheSchemaType.CREDENTIAL);
|
|
243
|
-
return;
|
|
244
|
-
}
|
|
245
|
-
break;
|
|
246
|
-
case AuthenticationScheme.SSH:
|
|
247
|
-
// KeyId (sshKid) in request must match cached SSH certificate keyId because SSH cert is bound to a specific key
|
|
248
|
-
if (keyId && !_this.matchKeyId(entity, keyId)) {
|
|
249
|
-
return;
|
|
250
|
-
}
|
|
251
|
-
break;
|
|
245
|
+
// KeyId (sshKid) in request must match cached SSH certificate keyId because SSH cert is bound to a specific key
|
|
246
|
+
if (tokenType === AuthenticationScheme.SSH) {
|
|
247
|
+
if (keyId && !_this.matchKeyId(entity, keyId)) {
|
|
248
|
+
return;
|
|
249
|
+
}
|
|
252
250
|
}
|
|
253
251
|
}
|
|
252
|
+
// At this point, the entity matches the request, update cache key if key schema has changed
|
|
253
|
+
var updatedCacheKey = _this.updateCredentialCacheKey(cacheKey, entity);
|
|
254
254
|
switch (credType) {
|
|
255
255
|
case CredentialType.ID_TOKEN:
|
|
256
|
-
matchingCredentials.idTokens[
|
|
256
|
+
matchingCredentials.idTokens[updatedCacheKey] = entity;
|
|
257
257
|
break;
|
|
258
258
|
case CredentialType.ACCESS_TOKEN:
|
|
259
259
|
case CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME:
|
|
260
|
-
matchingCredentials.accessTokens[
|
|
260
|
+
matchingCredentials.accessTokens[updatedCacheKey] = entity;
|
|
261
261
|
break;
|
|
262
262
|
case CredentialType.REFRESH_TOKEN:
|
|
263
|
-
matchingCredentials.refreshTokens[
|
|
263
|
+
matchingCredentials.refreshTokens[updatedCacheKey] = entity;
|
|
264
264
|
break;
|
|
265
265
|
}
|
|
266
266
|
});
|
|
@@ -459,10 +459,10 @@ var CacheManager = /** @class */ (function () {
|
|
|
459
459
|
* @param environment
|
|
460
460
|
* @param authScheme
|
|
461
461
|
*/
|
|
462
|
-
CacheManager.prototype.readCacheRecord = function (account, clientId,
|
|
462
|
+
CacheManager.prototype.readCacheRecord = function (account, clientId, request, environment) {
|
|
463
463
|
var cachedAccount = this.readAccountFromCache(account);
|
|
464
464
|
var cachedIdToken = this.readIdTokenFromCache(clientId, account);
|
|
465
|
-
var cachedAccessToken = this.readAccessTokenFromCache(clientId, account,
|
|
465
|
+
var cachedAccessToken = this.readAccessTokenFromCache(clientId, account, request);
|
|
466
466
|
var cachedRefreshToken = this.readRefreshTokenFromCache(clientId, account, false);
|
|
467
467
|
var cachedAppMetadata = this.readAppMetadataFromCache(environment, clientId);
|
|
468
468
|
if (cachedAccount && cachedIdToken) {
|
|
@@ -516,9 +516,14 @@ var CacheManager = /** @class */ (function () {
|
|
|
516
516
|
* @param scopes
|
|
517
517
|
* @param authScheme
|
|
518
518
|
*/
|
|
519
|
-
CacheManager.prototype.readAccessTokenFromCache = function (clientId, account,
|
|
520
|
-
|
|
521
|
-
var
|
|
519
|
+
CacheManager.prototype.readAccessTokenFromCache = function (clientId, account, request) {
|
|
520
|
+
var scopes = new ScopeSet(request.scopes || []);
|
|
521
|
+
var authScheme = request.authenticationScheme || AuthenticationScheme.BEARER;
|
|
522
|
+
/*
|
|
523
|
+
* Distinguish between Bearer and PoP/SSH token cache types
|
|
524
|
+
* Cast to lowercase to handle "bearer" from ADFS
|
|
525
|
+
*/
|
|
526
|
+
var credentialType = (authScheme && authScheme.toLowerCase() !== AuthenticationScheme.BEARER.toLowerCase()) ? CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME : CredentialType.ACCESS_TOKEN;
|
|
522
527
|
var accessTokenFilter = {
|
|
523
528
|
homeAccountId: account.homeAccountId,
|
|
524
529
|
environment: account.environment,
|
|
@@ -527,7 +532,8 @@ var CacheManager = /** @class */ (function () {
|
|
|
527
532
|
realm: account.tenantId,
|
|
528
533
|
target: scopes.printScopesLowerCase(),
|
|
529
534
|
tokenType: authScheme,
|
|
530
|
-
keyId:
|
|
535
|
+
keyId: request.sshKid,
|
|
536
|
+
requestedClaimsHash: request.requestedClaimsHash
|
|
531
537
|
};
|
|
532
538
|
var credentialCache = this.getCredentialsFilteredBy(accessTokenFilter);
|
|
533
539
|
var accessTokens = Object.keys(credentialCache.accessTokens).map(function (key) { return credentialCache.accessTokens[key]; });
|
|
@@ -836,6 +842,10 @@ var DefaultStorageClass = /** @class */ (function (_super) {
|
|
|
836
842
|
});
|
|
837
843
|
});
|
|
838
844
|
};
|
|
845
|
+
DefaultStorageClass.prototype.updateCredentialCacheKey = function () {
|
|
846
|
+
var notImplErr = "Storage interface - updateCredentialCacheKey() has not been implemented for the cacheStorage interface.";
|
|
847
|
+
throw AuthError.createUnexpectedError(notImplErr);
|
|
848
|
+
};
|
|
839
849
|
return DefaultStorageClass;
|
|
840
850
|
}(CacheManager));
|
|
841
851
|
|