@equinor/fusion-framework-module-msal 8.0.4 → 8.0.5
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 +24 -0
- package/dist/esm/MsalClient.js +7 -1
- package/dist/esm/MsalClient.js.map +1 -1
- package/dist/esm/MsalConfigurator.js +38 -1
- package/dist/esm/MsalConfigurator.js.map +1 -1
- package/dist/esm/__tests__/MsalConfigurator.test.js +23 -0
- package/dist/esm/__tests__/MsalConfigurator.test.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/MsalClient.d.ts +18 -1
- package/dist/types/MsalConfigurator.d.ts +25 -0
- package/dist/types/version.d.ts +1 -1
- package/package.json +1 -1
- package/src/MsalClient.ts +25 -1
- package/src/MsalConfigurator.ts +43 -1
- package/src/__tests__/MsalConfigurator.test.ts +41 -0
- package/src/version.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,29 @@
|
|
|
1
1
|
# Change Log
|
|
2
2
|
|
|
3
|
+
## 8.0.5
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 730d51a: Fix silent token acquisition hanging ~10–20 s when refresh token is revoked.
|
|
8
|
+
|
|
9
|
+
When a refresh token is revoked, MSAL's default cache lookup policy (`Default`) falls back to a hidden iframe (`SilentIframeClient`) after the token endpoint returns `invalid_grant`. The iframe loads the app URL, fails to authenticate (no valid session), and times out — throwing `monitor_window_timeout` before eventually triggering an interactive redirect. This causes the visible "iframe crash + page reload" symptom.
|
|
10
|
+
|
|
11
|
+
The configurator now defaults `cacheLookupPolicy` to `CacheLookupPolicy.AccessTokenAndRefreshToken`, which skips the iframe step entirely. A revoked refresh token now immediately throws `InteractionRequiredAuthError`, and the app falls back to interactive login without the delay.
|
|
12
|
+
|
|
13
|
+
**Configuration:**
|
|
14
|
+
|
|
15
|
+
The policy is fully configurable via `MsalConfigurator.setCacheLookupPolicy`. To restore MSAL's original waterfall (cache → refresh token → iframe):
|
|
16
|
+
|
|
17
|
+
```typescript
|
|
18
|
+
import { CacheLookupPolicy } from "@azure/msal-browser";
|
|
19
|
+
|
|
20
|
+
configurator.setCacheLookupPolicy(CacheLookupPolicy.Default);
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Per-request `cacheLookupPolicy` on `SilentRequest` still takes precedence over the instance default.
|
|
24
|
+
|
|
25
|
+
Fixes: https://github.com/equinor/fusion-core-tasks/issues/1234
|
|
26
|
+
|
|
3
27
|
## 8.0.4
|
|
4
28
|
|
|
5
29
|
### Patch Changes
|
package/dist/esm/MsalClient.js
CHANGED
|
@@ -27,6 +27,7 @@ const FUSION_CORRELATION_ID = '';
|
|
|
27
27
|
export class MsalClient extends PublicClientApplication {
|
|
28
28
|
#tenantId;
|
|
29
29
|
#clientId;
|
|
30
|
+
#cacheLookupPolicy;
|
|
30
31
|
/**
|
|
31
32
|
* Creates a new MSAL client instance.
|
|
32
33
|
*
|
|
@@ -36,6 +37,7 @@ export class MsalClient extends PublicClientApplication {
|
|
|
36
37
|
super(config);
|
|
37
38
|
this.#tenantId = config.auth?.tenantId;
|
|
38
39
|
this.#clientId = config.auth?.clientId;
|
|
40
|
+
this.#cacheLookupPolicy = config.cacheLookupPolicy;
|
|
39
41
|
}
|
|
40
42
|
/**
|
|
41
43
|
* Tenant identifier for the configured Azure AD tenant.
|
|
@@ -190,7 +192,11 @@ export class MsalClient extends PublicClientApplication {
|
|
|
190
192
|
if (request.account) {
|
|
191
193
|
try {
|
|
192
194
|
this.getLogger().verbose('Attempting to acquire token silently', request.correlationId || FUSION_CORRELATION_ID);
|
|
193
|
-
return await this.acquireTokenSilent(
|
|
195
|
+
return await this.acquireTokenSilent({
|
|
196
|
+
// Instance-level policy is the default; request-level cacheLookupPolicy takes precedence
|
|
197
|
+
cacheLookupPolicy: this.#cacheLookupPolicy,
|
|
198
|
+
...request,
|
|
199
|
+
});
|
|
194
200
|
}
|
|
195
201
|
catch {
|
|
196
202
|
// Silent acquisition failed - fall back to interactive
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MsalClient.js","sourceRoot":"","sources":["../../src/MsalClient.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,
|
|
1
|
+
{"version":3,"file":"MsalClient.js","sourceRoot":"","sources":["../../src/MsalClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import semver from 'semver';
|
|
|
4
4
|
import { TelemetryLevel, } from '@equinor/fusion-framework-module-telemetry';
|
|
5
5
|
import { MsalClient } from './MsalClient';
|
|
6
6
|
import { createClientLogCallback } from './create-client-log-callback';
|
|
7
|
-
import { LogLevel } from '@azure/msal-browser';
|
|
7
|
+
import { CacheLookupPolicy, LogLevel } from '@azure/msal-browser';
|
|
8
8
|
import { version } from './version';
|
|
9
9
|
/**
|
|
10
10
|
* Zod schema for telemetry configuration validation.
|
|
@@ -31,6 +31,10 @@ const MsalConfigSchema = z.object({
|
|
|
31
31
|
redirectUri: z.string().optional(),
|
|
32
32
|
loginHint: z.string().optional(),
|
|
33
33
|
authCode: z.string().optional(),
|
|
34
|
+
cacheLookupPolicy: z
|
|
35
|
+
.custom((val) => typeof val === 'number' &&
|
|
36
|
+
Object.values(CacheLookupPolicy).includes(val))
|
|
37
|
+
.optional(),
|
|
34
38
|
version: z.string().transform((x) => String(semver.coerce(x))),
|
|
35
39
|
telemetry: TelemetryConfigSchema,
|
|
36
40
|
});
|
|
@@ -73,6 +77,8 @@ export class MsalConfigurator extends BaseConfigBuilder {
|
|
|
73
77
|
return telemetry;
|
|
74
78
|
}
|
|
75
79
|
});
|
|
80
|
+
// Default cache lookup policy to AccessTokenAndRefreshToken to avoid iframe fallback delays
|
|
81
|
+
this._set('cacheLookupPolicy', async () => CacheLookupPolicy.AccessTokenAndRefreshToken);
|
|
76
82
|
}
|
|
77
83
|
/**
|
|
78
84
|
* Sets the MSAL client configuration for authentication.
|
|
@@ -98,6 +104,33 @@ export class MsalConfigurator extends BaseConfigBuilder {
|
|
|
98
104
|
this.#msalConfig = config;
|
|
99
105
|
return this;
|
|
100
106
|
}
|
|
107
|
+
/**
|
|
108
|
+
* Sets the cache lookup policy used for every silent token acquisition.
|
|
109
|
+
*
|
|
110
|
+
* Controls whether MSAL falls back to a hidden iframe when the refresh token
|
|
111
|
+
* fails. Defaults to `CacheLookupPolicy.AccessTokenAndRefreshToken`, which skips
|
|
112
|
+
* the iframe step and fails immediately with `InteractionRequiredAuthError` when
|
|
113
|
+
* the refresh token is revoked — avoiding the ~10–20 s `monitor_window_timeout`
|
|
114
|
+
* delay caused by MSAL's built-in iframe fallback.
|
|
115
|
+
*
|
|
116
|
+
* Set to `CacheLookupPolicy.Default` to restore MSAL's full waterfall:
|
|
117
|
+
* cache → refresh token → iframe.
|
|
118
|
+
*
|
|
119
|
+
* @param policy - Cache lookup policy to apply
|
|
120
|
+
* @returns The configurator instance for method chaining
|
|
121
|
+
*
|
|
122
|
+
* @example
|
|
123
|
+
* ```typescript
|
|
124
|
+
* import { CacheLookupPolicy } from '@azure/msal-browser';
|
|
125
|
+
*
|
|
126
|
+
* // Restore MSAL's built-in iframe fallback (not recommended for most apps)
|
|
127
|
+
* configurator.setCacheLookupPolicy(CacheLookupPolicy.Default);
|
|
128
|
+
* ```
|
|
129
|
+
*/
|
|
130
|
+
setCacheLookupPolicy(policy) {
|
|
131
|
+
this._set('cacheLookupPolicy', async () => policy);
|
|
132
|
+
return this;
|
|
133
|
+
}
|
|
101
134
|
/**
|
|
102
135
|
* Sets a backend-issued authorization code for token exchange.
|
|
103
136
|
*
|
|
@@ -304,6 +337,10 @@ export class MsalConfigurator extends BaseConfigBuilder {
|
|
|
304
337
|
},
|
|
305
338
|
};
|
|
306
339
|
}
|
|
340
|
+
// Apply silent cache lookup policy if configured
|
|
341
|
+
if (config.cacheLookupPolicy !== undefined) {
|
|
342
|
+
clientConfig.cacheLookupPolicy = config.cacheLookupPolicy;
|
|
343
|
+
}
|
|
307
344
|
// Instantiate MSAL client with fully configured options
|
|
308
345
|
config.client = new MsalClient(clientConfig);
|
|
309
346
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MsalConfigurator.js","sourceRoot":"","sources":["../../src/MsalConfigurator.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AACpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,OAAO,EACL,cAAc,GAEf,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,UAAU,EAA2C,MAAM,cAAc,CAAC;AACnF,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"MsalConfigurator.js","sourceRoot":"","sources":["../../src/MsalConfigurator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { CacheLookupPolicy } from '@azure/msal-browser';
|
|
1
2
|
import { describe, expect, it, vi } from 'vitest';
|
|
2
3
|
import { MsalConfigurator } from '../MsalConfigurator';
|
|
3
4
|
const createConfigCallbackArgs = () => ({
|
|
@@ -40,5 +41,27 @@ describe('MsalConfigurator', () => {
|
|
|
40
41
|
const config = await configurator.createConfigAsync(createConfigCallbackArgs(), createInitialConfig());
|
|
41
42
|
expect(config.client).toBeUndefined();
|
|
42
43
|
});
|
|
44
|
+
describe('cacheLookupPolicy', () => {
|
|
45
|
+
it('defaults to CacheLookupPolicy.AccessTokenAndRefreshToken', async () => {
|
|
46
|
+
const configurator = new MsalConfigurator();
|
|
47
|
+
configurator.setClient(createClient());
|
|
48
|
+
const config = await configurator.createConfigAsync(createConfigCallbackArgs(), createInitialConfig());
|
|
49
|
+
expect(config.cacheLookupPolicy).toBe(CacheLookupPolicy.AccessTokenAndRefreshToken);
|
|
50
|
+
});
|
|
51
|
+
it('setCacheLookupPolicy(undefined) clears the policy so MSAL default applies', async () => {
|
|
52
|
+
const configurator = new MsalConfigurator();
|
|
53
|
+
configurator.setClient(createClient());
|
|
54
|
+
configurator.setCacheLookupPolicy(undefined);
|
|
55
|
+
const config = await configurator.createConfigAsync(createConfigCallbackArgs(), createInitialConfig());
|
|
56
|
+
expect(config.cacheLookupPolicy).toBeUndefined();
|
|
57
|
+
});
|
|
58
|
+
it('setCacheLookupPolicy overrides the default', async () => {
|
|
59
|
+
const configurator = new MsalConfigurator();
|
|
60
|
+
configurator.setClient(createClient());
|
|
61
|
+
configurator.setCacheLookupPolicy(CacheLookupPolicy.Default);
|
|
62
|
+
const config = await configurator.createConfigAsync(createConfigCallbackArgs(), createInitialConfig());
|
|
63
|
+
expect(config.cacheLookupPolicy).toBe(CacheLookupPolicy.Default);
|
|
64
|
+
});
|
|
65
|
+
});
|
|
43
66
|
});
|
|
44
67
|
//# sourceMappingURL=MsalConfigurator.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MsalConfigurator.test.js","sourceRoot":"","sources":["../../../src/__tests__/MsalConfigurator.test.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAElD,OAAO,EAAmB,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAExE,MAAM,wBAAwB,GAAG,GAA8B,EAAE,CAAC,CAAC;IACjE,MAAM,EAAE,EAAE;IACV,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC;IACzC,eAAe,EAAE,EAAE,CAAC,EAAE,EAAE;CACzB,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,GAAgB,EAAE,CAAC,CAAC,EAAE,CAAgB,CAAC;AAE5D,MAAM,mBAAmB,GAAG,GAAkC,EAAE,CAAC,CAAC;IAChE,SAAS,EAAE;QACT,QAAQ,EAAE,EAAE;QACZ,KAAK,EAAE,EAAE;KACV;CACF,CAAC,CAAC;AAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QACnE,MAAM,YAAY,GAAG,IAAI,gBAAgB,EAAE,CAAC;QAE5C,YAAY,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,CAAC;QACvC,YAAY,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;QAE1C,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,iBAAiB,CACjD,wBAAwB,EAAE,EAC1B,mBAAmB,EAAE,CACtB,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAChE,MAAM,YAAY,GAAG,IAAI,gBAAgB,EAAE,CAAC;QAE5C,YAAY,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,CAAC;QACvC,YAAY,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACtC,YAAY,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAEpC,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,iBAAiB,CACjD,wBAAwB,EAAE,EAC1B,mBAAmB,EAAE,CACtB,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;QAC5E,MAAM,YAAY,GAAG,IAAI,gBAAgB,EAAE,CAAC;QAE5C,YAAY,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,CAAC;QACvC,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAEhC,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,iBAAiB,CACjD,wBAAwB,EAAE,EAC1B,mBAAmB,EAAE,CACtB,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,aAAa,EAAE,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;QACvE,MAAM,YAAY,GAAG,IAAI,gBAAgB,EAAE,CAAC;QAE5C,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,iBAAiB,CACjD,wBAAwB,EAAE,EAC1B,mBAAmB,EAAE,CACtB,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"MsalConfigurator.test.js","sourceRoot":"","sources":["../../../src/__tests__/MsalConfigurator.test.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/version.js
CHANGED