@progress-chef/platform-http-interceptor 1.0.5 → 1.0.7
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.
|
@@ -88,36 +88,16 @@ export class HttpAuthInterceptor {
|
|
|
88
88
|
LocalStorageService.removeItem(StorageKeys.LOGIN_TYPE);
|
|
89
89
|
LocalStorageService.removeItem(StorageKeys.IDENTITY_TOKEN);
|
|
90
90
|
LocalStorageService.removeItem(StorageKeys.USER_ORG_AND_ROLE_TOKEN);
|
|
91
|
-
this.router.
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
}
|
|
99
|
-
else if (err?.message.includes('expired')) {
|
|
100
|
-
message = 'Your session has expired. Please login again.';
|
|
101
|
-
}
|
|
102
|
-
this.toastNotificationService.showToastNotification({
|
|
103
|
-
content: message || err?.message || `Unauthorized`,
|
|
104
|
-
type: { style: 'error', icon: true },
|
|
105
|
-
closable: true,
|
|
106
|
-
action: {}
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
catch (e) {
|
|
111
|
-
console.log("HttpAuthInterceptor: Exception occurred at 401", e);
|
|
112
|
-
this.toastNotificationService.showToastNotification({
|
|
113
|
-
content: `Something went wrong. Please try again.`,
|
|
114
|
-
type: { style: 'error', icon: true },
|
|
115
|
-
closable: true,
|
|
116
|
-
action: {}
|
|
117
|
-
});
|
|
91
|
+
if (this.router.url.startsWith('/login/user-login')) {
|
|
92
|
+
this.handleUnauthorizedError(error);
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
this.router.navigate(['/login']).then((navigated) => {
|
|
96
|
+
if (navigated) {
|
|
97
|
+
this.handleUnauthorizedError(error);
|
|
118
98
|
}
|
|
119
|
-
}
|
|
120
|
-
}
|
|
99
|
+
});
|
|
100
|
+
}
|
|
121
101
|
break;
|
|
122
102
|
case 402:
|
|
123
103
|
if (loginType === 'saml' || loginType === 'oauth') {
|
|
@@ -233,6 +213,34 @@ export class HttpAuthInterceptor {
|
|
|
233
213
|
return throwError(() => error);
|
|
234
214
|
}));
|
|
235
215
|
}
|
|
216
|
+
handleUnauthorizedError(error) {
|
|
217
|
+
try {
|
|
218
|
+
for (let err of error?.error?.errors) {
|
|
219
|
+
let message = '';
|
|
220
|
+
if (err?.message.toLowerCase() === 'invalid credentials') {
|
|
221
|
+
message = 'Invalid username or password.';
|
|
222
|
+
}
|
|
223
|
+
else if (err?.message.includes('expired')) {
|
|
224
|
+
message = 'Your session has expired. Please login again.';
|
|
225
|
+
}
|
|
226
|
+
this.toastNotificationService.showToastNotification({
|
|
227
|
+
content: message || err?.message || `Unauthorized`,
|
|
228
|
+
type: { style: 'error', icon: true },
|
|
229
|
+
closable: true,
|
|
230
|
+
action: {}
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
catch (e) {
|
|
235
|
+
console.log("HttpAuthInterceptor: Exception occurred at 401", e);
|
|
236
|
+
this.toastNotificationService.showToastNotification({
|
|
237
|
+
content: `Something went wrong. Please try again.`,
|
|
238
|
+
type: { style: 'error', icon: true },
|
|
239
|
+
closable: true,
|
|
240
|
+
action: {}
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
}
|
|
236
244
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HttpAuthInterceptor, deps: [{ token: i1.Router }, { token: i2.ToastNotificationService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
237
245
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HttpAuthInterceptor, providedIn: 'root' }); }
|
|
238
246
|
}
|
|
@@ -242,4 +250,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
242
250
|
providedIn: 'root'
|
|
243
251
|
}]
|
|
244
252
|
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.ToastNotificationService }]; } });
|
|
245
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1hdXRoLmludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcGxhdGZvcm0taHR0cC1pbnRlcmNlcHRvci9zcmMvbGliL2h0dHAtYXV0aC5pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ3lCLGFBQWEsRUFDNUMsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUUzRixPQUFPLEVBQWMsVUFBVSxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7QUFNL0QsTUFBTSxPQUFPLG1CQUFtQjtJQUc5QixZQUNVLE1BQWMsRUFDTCx3QkFBa0Q7UUFEM0QsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNMLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFKckUsaUJBQVksR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLHFCQUFnQixHQUFHLEtBQUssQ0FBQztJQUlyQixDQUFDO0lBRUwsU0FBUyxDQUFDLE9BQTZCLEVBQUUsSUFBaUI7UUFDeEQsSUFBSSxTQUFTLEdBQUcsbUJBQW1CLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNwRSxJQUFJLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdEIsSUFBSSxTQUFTLEVBQUU7WUFDYixPQUFPLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztnQkFDdEIsVUFBVSxFQUFFO29CQUNWLGFBQWEsRUFBRSxVQUFVLFNBQVMsRUFBRTtpQkFDckM7YUFDRixDQUFDLENBQUE7WUFDRixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUU7Z0JBQ3JDLElBQUksQ0FB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QU8sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ2hDLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDOytHQXJPVSxtQkFBbUI7bUhBQW5CLG1CQUFtQixjQUhsQixNQUFNOzs0RkFHUCxtQkFBbUI7a0JBSi9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSHR0cEVycm9yUmVzcG9uc2UsIEh0dHBFdmVudCwgSHR0cEV2ZW50VHlwZSwgSHR0cEhhbmRsZXIsIEh0dHBJbnRlcmNlcHRvciwgSHR0cFJlcXVlc3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IExvY2FsU3RvcmFnZVNlcnZpY2UsIFN0b3JhZ2VLZXlzIH0gZnJvbSAnQHByb2dyZXNzLWNoZWYvcGxhdGZvcm0tc3RvcmFnZS1zZXJ2aWNlJztcbmltcG9ydCB7IFRvYXN0Tm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJ0Bwcm9ncmVzcy1jaGVmL3RvYXN0LW5vdGlmaWNhdGlvbic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBjYXRjaEVycm9yLCB0YXAsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5cbmV4cG9ydCBjbGFzcyBIdHRwQXV0aEludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yIHtcbiAgYXV0aFRva2VuU2V0ID0gbmV3IFNldCgpO1xuICBpc1Nlc3Npb25FeHBpcmVkID0gZmFsc2U7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0b2FzdE5vdGlmaWNhdGlvblNlcnZpY2U6IFRvYXN0Tm90aWZpY2F0aW9uU2VydmljZVxuICApIHsgfVxuXG4gIGludGVyY2VwdChyZXF1ZXN0OiBIdHRwUmVxdWVzdDx1bmtub3duPiwgbmV4dDogSHR0cEhhbmRsZXIpOiBPYnNlcnZhYmxlPEh0dHBFdmVudDx1bmtub3duPj4ge1xuICAgIGxldCBhdXRoVG9rZW4gPSBMb2NhbFN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oU3RvcmFnZUtleXMuQVVUSF9UT0tFTik7XG4gICAgbGV0IGF1dGhSZXEgPSByZXF1ZXN0O1xuICAgIGlmIChhdXRoVG9rZW4pIHtcbiAgICAgIGF1dGhSZXEgPSByZXF1ZXN0LmNsb25lKHtcbiAgICAgICAgc2V0SGVhZGVyczoge1xuICAgICAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHthdXRoVG9rZW59YFxuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgaWYgKCF0aGlzLmF1dGhUb2tlblNldC5oYXMoYXV0aFRva2VuKSkge1xuICAgICAgICB0aGlzLmlzU2Vzc2lvbkV4cGlyZWQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHRoaXMuYXV0aFRva2VuU2V0LmFkZChhdXRoVG9rZW4pO1xuICAgIH1cbiAgICByZXR1cm4gbmV4dC5oYW5kbGUoYXV0aFJlcSkucGlwZShcbiAgICAgIHRhcCgoZXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09IEh0dHBFdmVudFR5cGUuUmVzcG9uc2UpIHtcbiAgICAgICAgICBzd2l0Y2ggKGV2ZW50LnN0YXR1cykge1xuICAgICAgICAgICAgY2FzZSAyMDI6XG4gICAgICAgICAgICAgIHRoaXMudG9hc3ROb3RpZmljYXRpb25TZXJ2aWNlLnNob3dUb2FzdE5vdGlmaWNhdGlvbih7XG4gICAgICAgICAgICAgICAgY29udGVudDogZXZlbnQ/LmJvZHk/Lml0ZW0/Lm1lc3NhZ2UgfHwgYFJlcXVlc3QgdW5kZXIgcHJvY2Vzc2luZ2AsXG4gICAgICAgICAgICAgICAgdHlwZTogeyBzdHlsZTogJ2luZm8nLCBpY29uOiB0cnVlIH0sXG4gICAgICAgICAgICAgICAgY2xvc2FibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgYWN0aW9uOiB7fVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIDIwNzpcbiAgICAgICAgICAgICAgbGV0IG1lc3NhZ2UgPSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJ1JlcXVlc3Qgd2FzIHN1Y2Nlc3NmdWwnLFxuICAgICAgICAgICAgICAgIG5vdGlmaWNhdGlvblN0eWxlOiAnc3VjY2VzcycsXG4gICAgICAgICAgICAgICAgY2xvc2FibGU6IGZhbHNlXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpdGVtIG9mIGV2ZW50LmJvZHk/Lml0ZW1zKSB7XG4gICAgICAgICAgICAgICAgICBmb3IgKGxldCBlcnIgb2YgaXRlbT8udXNlclJvbGVNYXBwaW5nKSB7IC8qIEN1cnJlbnRseSAyMDcgaXMgaGFuZGxlZCBvbmx5IGZvciBzaW5nbGUgdXNlIGNhc2UsIHNvIGl0IGlzIGhhcmRjb2RlZC5JZiB0aGVyZSBhcmUgbW9yZSB1c2UgY2FzZXMsIHRoZW4gdGhpcyBzaG91bGQgYmUgdXBkYXRlZCBhY2NvcmRpbmdseS4gICovXG4gICAgICAgICAgICAgICAgICAgIGlmIChlcnIuZXJyb3IgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ1VzZXIgbm90IGFsbG93ZWQgZm9yIHRoaXMgb3BlcmF0aW9uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGlmaWNhdGlvblN0eWxlOiAnZXJyb3InLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2FibGU6IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy50b2FzdE5vdGlmaWNhdGlvblNlcnZpY2Uuc2hvd1RvYXN0Tm90aWZpY2F0aW9uKHtcbiAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IG1lc3NhZ2UuY29udGVudCxcbiAgICAgICAgICAgICAgICAgIHR5cGU6IHsgc3R5bGU6IG1lc3NhZ2Uubm90aWZpY2F0aW9uU3R5bGUsIGljb246IHRydWUgfSxcbiAgICAgICAgICAgICAgICAgIGNsb3NhYmxlOiBtZXNzYWdlLmNsb3NhYmxlLFxuICAgICAgICAgICAgICAgICAgYWN0aW9uOiB7fVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJFeGNlcHRpb24gb2NjdXJyZWQgYXQgSHR0cEF1dGhJbnRlcmNlcHRvciAyMDcgbm90aWZpY2F0aW9uXCIsIGUpO1xuICAgICAgICAgICAgICAgIHRoaXMudG9hc3ROb3RpZmljYXRpb25TZXJ2aWNlLnNob3dUb2FzdE5vdGlmaWNhdGlvbih7XG4gICAgICAgICAgICAgICAgICBjb250ZW50OiBgVGhlIHJlcXVlc3QgaGFzIGJlZW4gYWNjZXB0ZWQgZm9yIHByb2Nlc3NpbmcsIGJ1dCBoYXMgYmVlbiBwYXJ0aWFsbHkgY29tcGxldGVkLmAsXG4gICAgICAgICAgICAgICAgICB0eXBlOiB7IHN0eWxlOiAnaW5mbycsIGljb246IHRydWUgfSxcbiAgICAgICAgICAgICAgICAgIGNsb3NhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgYWN0aW9uOiB7fVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcbiAgICAgICAgY29uc3QgbG9naW5UeXBlID0gTG9jYWxTdG9yYWdlU2VydmljZS5nZXRJdGVtKFN0b3JhZ2VLZXlzLkxPR0lOX1RZUEUpO1xuXG4gICAgICAgIHN3aXRjaCAoZXJyb3Iuc3RhdHVzKSB7XG4gICAgICAgICAgY2FzZSA0MDE6XG4gICAgICAgICAgICBpZiAobG9naW5UeXBlID09PSAnc2FtbCcgfHwgbG9naW5UeXBlID09PSAnb2F1dGgnKSB7XG4gICAgICAgICAgICAgIExvY2FsU3RvcmFnZVNlcnZpY2UucmVtb3ZlSXRlbShTdG9yYWdlS2V5cy5VU0VSX05BTUUpO1xuICAgICAgICAgICAgICBMb2NhbFN0b3JhZ2VTZXJ2aWNlLnJlbW92ZUl0ZW0oU3RvcmFnZUtleXMuSVNfUkVNRU1CRVJfTUUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgTG9jYWxTdG9yYWdlU2VydmljZS5zZXRJdGVtKFN0b3JhZ2VLZXlzLklTX1VTRVJfT1JHX0FORF9ST0xFX1NFVCwgZmFsc2UpO1xuICAgICAgICAgICAgTG9jYWxTdG9yYWdlU2VydmljZS5zZXRJdGVtKFN0b3JhZ2VLZXlzLklTX1VTRVJfQVVUSEVOVElDQVRFRCwgZmFsc2UpO1xuICAgICAgICAgICAgTG9jYWxTdG9yYWdlU2VydmljZS5yZW1vdmVJdGVtKFN0b3JhZ2VLZXlzLkFVVEhfVE9LRU4pO1xuICAgICAgICAgICAgTG9jYWxTdG9yYWdlU2VydmljZS5yZW1vdmVJdGVtKFN0b3JhZ2VLZXlzLkxPR0lOX1RZUEUpO1xuICAgICAgICAgICAgTG9jYWxTdG9yYWdlU2VydmljZS5yZW1vdmVJdGVtKFN0b3JhZ2VLZXlzLklERU5USVRZX1RPS0VOKTtcbiAgICAgICAgICAgIExvY2FsU3RvcmFnZVNlcnZpY2UucmVtb3ZlSXRlbShTdG9yYWdlS2V5cy5VU0VSX09SR19BTkRfUk9MRV9UT0tFTik7XG5cbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2xvZ2luJ10pLnRoZW4oKG5hdmlnYXRlZCkgPT4ge1xuICAgICAgICAgICAgICBpZiAobmF2aWdhdGVkKSB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgIGZvciAobGV0IGVyciBvZiBlcnJvcj8uZXJyb3I/LmVycm9ycykge1xuICAgICAgICAgICAgICAgICAgICBsZXQgbWVzc2FnZSA9ICcnO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyPy5tZXNzYWdlLnRvTG93ZXJDYXNlKCkgPT09ICdpbnZhbGlkIGNyZWRlbnRpYWxzJykge1xuICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSAnSW52YWxpZCB1c2VybmFtZSBvciBwYXNzd29yZC4nO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGVycj8ubWVzc2FnZS5pbmNsdWRlcygnZXhwaXJlZCcpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9ICdZb3VyIHNlc3Npb24gaGFzIGV4cGlyZWQuIFBsZWFzZSBsb2dpbiBhZ2Fpbi4nO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudG9hc3ROb3RpZmljYXRpb25TZXJ2aWNlLnNob3dUb2FzdE5vdGlmaWNhdGlvbih7XG4gICAgICAgICAgICAgICAgICAgICAgY29udGVudDogbWVzc2FnZSB8fCBlcnI/Lm1lc3NhZ2UgfHwgYFVuYXV0aG9yaXplZGAsXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZTogeyBzdHlsZTogJ2Vycm9yJywgaWNvbjogdHJ1ZSB9LFxuICAgICAgICAgICAgICAgICAgICAgIGNsb3NhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbjoge31cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJIdHRwQXV0aEludGVyY2VwdG9yOiBFeGNlcHRpb24gb2NjdXJyZWQgYXQgNDAxXCIsIGUpO1xuICAgICAgICAgICAgICAgICAgdGhpcy50b2FzdE5vdGlmaWNhdGlvblNlcnZpY2Uuc2hvd1RvYXN0Tm90aWZpY2F0aW9uKHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYFNvbWV0aGluZyB3ZW50IHdyb25nLiBQbGVhc2UgdHJ5IGFnYWluLmAsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IHsgc3R5bGU6ICdlcnJvcicsIGljb246IHRydWUgfSxcbiAgICAgICAgICAgICAgICAgICAgY2xvc2FibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbjoge31cbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgNDAyOlxuICAgICAgICAgICAgaWYgKGxvZ2luVHlwZSA9PT0gJ3NhbWwnIHx8IGxvZ2luVHlwZSA9PT0gJ29hdXRoJykge1xuICAgICAgICAgICAgICBMb2NhbFN0b3JhZ2VTZXJ2aWNlLnJlbW92ZUl0ZW0oU3RvcmFnZUtleXMuVVNFUl9OQU1FKTtcbiAgICAgICAgICAgICAgTG9jYWxTdG9yYWdlU2VydmljZS5yZW1vdmVJdGVtKFN0b3JhZ2VLZXlzLklTX1JFTUVNQkVSX01FKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIExvY2FsU3RvcmFnZVNlcnZpY2Uuc2V0SXRlbShTdG9yYWdlS2V5cy5JU19VU0VSX09SR19BTkRfUk9MRV9TRVQsIGZhbHNlKTtcbiAgICAgICAgICAgIExvY2FsU3RvcmFnZVNlcnZpY2Uuc2V0SXRlbShTdG9yYWdlS2V5cy5JU19VU0VSX0FVVEhFTlRJQ0FURUQsIGZhbHNlKTtcbiAgICAgICAgICAgIExvY2FsU3RvcmFnZVNlcnZpY2UucmVtb3ZlSXRlbShTdG9yYWdlS2V5cy5BVVRIX1RPS0VOKTtcbiAgICAgICAgICAgIExvY2FsU3RvcmFnZVNlcnZpY2UucmVtb3ZlSXRlbShTdG9yYWdlS2V5cy5MT0dJTl9UWVBFKTtcbiAgICAgICAgICAgIExvY2FsU3RvcmFnZVNlcnZpY2UucmVtb3ZlSXRlbShTdG9yYWdlS2V5cy5JREVOVElUWV9UT0tFTik7XG4gICAgICAgICAgICBMb2NhbFN0b3JhZ2VTZXJ2aWNlLnJlbW92ZUl0ZW0oU3RvcmFnZUtleXMuVVNFUl9PUkdfQU5EX1JPTEVfVE9LRU4pO1xuXG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9sb2dpbiddKS50aGVuKChuYXZpZ2F0ZWQpID0+IHtcbiAgICAgICAgICAgICAgaWYgKG5hdmlnYXRlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMudG9hc3ROb3RpZmljYXRpb25TZXJ2aWNlLnNob3dUb2FzdE5vdGlmaWNhdGlvbih7XG4gICAgICAgICAgICAgICAgICBjb250ZW50OiBgTGljZW5zZSBleHBpcmVkLCBwbGVhc2UgY29udGFjdCB5b3VyIHN1cHBvcnQgcmVwcmVzZW50YXRpdmUuYCxcbiAgICAgICAgICAgICAgICAgIHR5cGU6IHsgc3R5bGU6ICdlcnJvcicsIGljb246IHRydWUgfSxcbiAgICAgICAgICAgICAgICAgIGNsb3NhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgYWN0aW9uOiB7fVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSA0MDM6XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBmb3IgKGxldCBlcnIgb2YgZXJyb3IuZXJyb3IuZXJyb3JzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50b2FzdE5vdGlmaWNhdGlvblNlcnZpY2Uuc2hvd1RvYXN0Tm90aWZpY2F0aW9uKHtcbiAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGVycj8ucmVhc29uIHx8IGBGb3JiaWRkZW4gdG8gYWNjZXNzIHRoaXMgcmVzb3VyY2UuIEFjY2VzcyBkZW5pZWQuYCxcbiAgICAgICAgICAgICAgICAgIHR5cGU6IHsgc3R5bGU6ICdlcnJvcicsIGljb246IHRydWUgfSxcbiAgICAgICAgICAgICAgICAgIGNsb3NhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgYWN0aW9uOiB7fVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiSHR0cEF1dGhJbnRlcmNlcHRvcjogRXhjZXB0aW9uIG9jY3VycmVkIGF0IDQwM1wiLCBlKTtcbiAgICAgICAgICAgICAgdGhpcy50b2FzdE5vdGlmaWNhdGlvblNlcnZpY2Uuc2hvd1RvYXN0Tm90aWZpY2F0aW9uKHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBgRm9yYmlkZGVuIHRvIGFjY2VzcyB0aGlzIHJlc291cmNlLiBBY2Nlc3MgZGVuaWVkLmAsXG4gICAgICAgICAgICAgICAgdHlwZTogeyBzdHlsZTogJ2Vycm9yJywgaWNvbjogdHJ1ZSB9LFxuICAgICAgICAgICAgICAgIGNsb3NhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGFjdGlvbjoge31cbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDQwNTpcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGZvciAobGV0IGVyciBvZiBlcnJvci5lcnJvci5lcnJvcnMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRvYXN0Tm90aWZpY2F0aW9uU2VydmljZS5zaG93VG9hc3ROb3RpZmljYXRpb24oe1xuICAgICAgICAgICAgICAgICAgY29udGVudDogZXJyPy5yZWFzb24gfHwgYEhUVFAgbWV0aG9kIG5vdCBhbGxvd2VkLmAsXG4gICAgICAgICAgICAgICAgICB0eXBlOiB7IHN0eWxlOiAnZXJyb3InLCBpY29uOiB0cnVlIH0sXG4gICAgICAgICAgICAgICAgICBjbG9zYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIGFjdGlvbjoge31cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIkh0dHBBdXRoSW50ZXJjZXB0b3I6IEV4Y2VwdGlvbiBvY2N1cnJlZCBhdCA0MDVcIiwgZSk7XG4gICAgICAgICAgICAgIHRoaXMudG9hc3ROb3RpZmljYXRpb25TZXJ2aWNlLnNob3dUb2FzdE5vdGlmaWNhdGlvbih7XG4gICAgICAgICAgICAgICAgY29udGVudDogYEhUVFAgbWV0aG9kIG5vdCBhbGxvd2VkLmAsXG4gICAgICAgICAgICAgICAgdHlwZTogeyBzdHlsZTogJ2Vycm9yJywgaWNvbjogdHJ1ZSB9LFxuICAgICAgICAgICAgICAgIGNsb3NhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGFjdGlvbjoge31cbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDUwMDpcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGZvciAobGV0IGVyciBvZiBlcnJvcj8uZXJyb3I/LmVycm9ycykge1xuICAgICAgICAgICAgICAgIHRoaXMudG9hc3ROb3RpZmljYXRpb25TZXJ2aWNlLnNob3dUb2FzdE5vdGlmaWNhdGlvbih7XG4gICAgICAgICAgICAgICAgICBjb250ZW50OiBlcnI/Lm1lc3NhZ2UgfHwgYFNvbWV0aGluZyB3ZW50IHdyb25nLiBQbGVhc2UgdHJ5IGFnYWluLmAsXG4gICAgICAgICAgICAgICAgICB0eXBlOiB7IHN0eWxlOiAnZXJyb3InLCBpY29uOiB0cnVlIH0sXG4gICAgICAgICAgICAgICAgICBjbG9zYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIGFjdGlvbjoge31cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIkh0dHBBdXRoSW50ZXJjZXB0b3I6IEV4Y2VwdGlvbiBvY2N1cnJlZCBhdCA1MDBcIiwgZSk7XG4gICAgICAgICAgICAgIHRoaXMudG9hc3ROb3RpZmljYXRpb25TZXJ2aWNlLnNob3dUb2FzdE5vdGlmaWNhdGlvbih7XG4gICAgICAgICAgICAgICAgY29udGVudDogYFNvbWV0aGluZyB3ZW50IHdyb25nLiBQbGVhc2UgdHJ5IGFnYWluLmAsXG4gICAgICAgICAgICAgICAgdHlwZTogeyBzdHlsZTogJ2Vycm9yJywgaWNvbjogdHJ1ZSB9LFxuICAgICAgICAgICAgICAgIGNsb3NhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGFjdGlvbjoge31cbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDUwMjpcbiAgICAgICAgICAgIHRoaXMudG9hc3ROb3RpZmljYXRpb25TZXJ2aWNlLnNob3dUb2FzdE5vdGlmaWNhdGlvbih7XG4gICAgICAgICAgICAgIGNvbnRlbnQ6IGBCYWQgR2F0ZXdheS4gUGxlYXNlIHRyeSBhZ2Fpbi5gLFxuICAgICAgICAgICAgICB0eXBlOiB7IHN0eWxlOiAnZXJyb3InLCBpY29uOiB0cnVlIH0sXG4gICAgICAgICAgICAgIGNsb3NhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICBhY3Rpb246IHt9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgNTAzOlxuICAgICAgICAgICAgdGhpcy50b2FzdE5vdGlmaWNhdGlvblNlcnZpY2Uuc2hvd1RvYXN0Tm90aWZpY2F0aW9uKHtcbiAgICAgICAgICAgICAgY29udGVudDogYFNlcnZpY2UgVW5hdmFpbGFibGUuIFBsZWFzZSB0cnkgYWdhaW4uYCxcbiAgICAgICAgICAgICAgdHlwZTogeyBzdHlsZTogJ2Vycm9yJywgaWNvbjogdHJ1ZSB9LFxuICAgICAgICAgICAgICBjbG9zYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgYWN0aW9uOiB7fVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgY2FzZSA1MDQ6XG4gICAgICAgICAgICB0aGlzLnRvYXN0Tm90aWZpY2F0aW9uU2VydmljZS5zaG93VG9hc3ROb3RpZmljYXRpb24oe1xuICAgICAgICAgICAgICBjb250ZW50OiBgVW5hYmxlIHRvIHJlYWNoIHNlcnZlci4gUGxlYXNlIHRyeSBhZ2Fpbi5gLFxuICAgICAgICAgICAgICB0eXBlOiB7IHN0eWxlOiAnZXJyb3InLCBpY29uOiB0cnVlIH0sXG4gICAgICAgICAgICAgIGNsb3NhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICBhY3Rpb246IHt9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyb3IpXG4gICAgICB9KVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
253
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1hdXRoLmludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcGxhdGZvcm0taHR0cC1pbnRlcmNlcHRvci9zcmMvbGliL2h0dHAtYXV0aC5pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ3lCLGFBQWEsRUFDNUMsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUUzRixPQUFPLEVBQWMsVUFBVSxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7QUFNL0QsTUFBTSxPQUFPLG1CQUFtQjtJQUc5QixZQUNVLE1BQWMsRUFDTCx3QkFBa0Q7UUFEM0QsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNMLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFKckUsaUJBQVksR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLHFCQUFnQixHQUFHLEtBQUssQ0FBQztJQUlyQixDQUFDO0lBRUwsU0FBUyxDQUFDLE9BQTZCLEVBQUUsSUFBaUI7UUFDeEQsSUFBSSxTQUFTLEdBQUcsbUJBQW1CLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNwRSxJQUFJLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdEIsSUFBSSxTQUFTLEVBQUU7WUFDYixPQUFPLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztnQkFDdEIsVUFBVSxFQUFFO29CQUNWLGFBQWEsRUFBRSxVQUFVLFNBQVMsRUFBRTtpQkFDckM7YUFDRixDQUFDLENBQUE7WUFDRixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUU7Z0JBQ3JDLElBQUksQ0FB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Q0o7U0FDRjtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnREFBZ0QsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNqRSxJQUFJLENBQUMsd0JBQXdCLENBQUMscUJBQXFCLENBQUM7Z0JBQ2xELE9BQU8sRUFBRSx5Q0FBeUM7Z0JBQ2xELElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRTtnQkFDcEMsUUFBUSxFQUFFLElBQUk7Z0JBQ2QsTUFBTSxFQUFFLEVBQUU7YUFDWCxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7K0dBN09VLG1CQUFtQjttSEFBbkIsbUJBQW1CLGNBSGxCLE1BQU07OzRGQUdQLG1CQUFtQjtrQkFKL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBIdHRwRXJyb3JSZXNwb25zZSwgSHR0cEV2ZW50LCBIdHRwRXZlbnRUeXBlLCBIdHRwSGFuZGxlciwgSHR0cEludGVyY2VwdG9yLCBIdHRwUmVxdWVzdFxufSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTG9jYWxTdG9yYWdlU2VydmljZSwgU3RvcmFnZUtleXMgfSBmcm9tICdAcHJvZ3Jlc3MtY2hlZi9wbGF0Zm9ybS1zdG9yYWdlLXNlcnZpY2UnO1xuaW1wb3J0IHsgVG9hc3ROb3RpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSAnQHByb2dyZXNzLWNoZWYvdG9hc3Qtbm90aWZpY2F0aW9uJztcbmltcG9ydCB7IE9ic2VydmFibGUsIGNhdGNoRXJyb3IsIHRhcCwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcblxuZXhwb3J0IGNsYXNzIEh0dHBBdXRoSW50ZXJjZXB0b3IgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3Ige1xuICBhdXRoVG9rZW5TZXQgPSBuZXcgU2V0KCk7XG4gIGlzU2Vzc2lvbkV4cGlyZWQgPSBmYWxzZTtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRvYXN0Tm90aWZpY2F0aW9uU2VydmljZTogVG9hc3ROb3RpZmljYXRpb25TZXJ2aWNlXG4gICkgeyB9XG5cbiAgaW50ZXJjZXB0KHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PHVua25vd24+LCBuZXh0OiBIdHRwSGFuZGxlcik6IE9ic2VydmFibGU8SHR0cEV2ZW50PHVua25vd24+PiB7XG4gICAgbGV0IGF1dGhUb2tlbiA9IExvY2FsU3RvcmFnZVNlcnZpY2UuZ2V0SXRlbShTdG9yYWdlS2V5cy5BVVRIX1RPS0VOKTtcbiAgICBsZXQgYXV0aFJlcSA9IHJlcXVlc3Q7XG4gICAgaWYgKGF1dGhUb2tlbikge1xuICAgICAgYXV0aFJlcSA9IHJlcXVlc3QuY2xvbmUoe1xuICAgICAgICBzZXRIZWFkZXJzOiB7XG4gICAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke2F1dGhUb2tlbn1gXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICBpZiAoIXRoaXMuYXV0aFRva2VuU2V0LmhhcyhhdXRoVG9rZW4pKSB7XG4gICAgICAgIHRoaXMuaXNTZXNzaW9uRXhwaXJlZCA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgdGhpcy5hdXRoVG9rZW5TZXQuYWRkKGF1dGhUb2tlbik7XG4gICAgfVxuICAgIHJldHVybiBuZXh0LmhhbmRsZShhdXRoUmVxKS5waXBlKFxuICAgICAgdGFwKChldmVudCkgPT4ge1xuICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gSHR0cEV2ZW50VHlwZS5SZXNwb25zZSkge1xuICAgICAgICAgIHN3aXRjaCAoZXZlbnQuc3RhdHVzKSB7XG4gICAgICAgICAgICBjYXNlIDIwMjpcbiAgICAgICAgICAgICAgdGhpcy50b2FzdE5vdGlmaWNhdGlvblNlcnZpY2Uuc2hvd1RvYXN0Tm90aWZpY2F0aW9uKHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBldmVudD8uYm9keT8uaXRlbT8ubWVzc2FnZSB8fCBgUmVxdWVzdCB1bmRlciBwcm9jZXNzaW5nYCxcbiAgICAgICAgICAgICAgICB0eXBlOiB7IHN0eWxlOiAnaW5mbycsIGljb246IHRydWUgfSxcbiAgICAgICAgICAgICAgICBjbG9zYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBhY3Rpb246IHt9XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgMjA3OlxuICAgICAgICAgICAgICBsZXQgbWVzc2FnZSA9IHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnUmVxdWVzdCB3YXMgc3VjY2Vzc2Z1bCcsXG4gICAgICAgICAgICAgICAgbm90aWZpY2F0aW9uU3R5bGU6ICdzdWNjZXNzJyxcbiAgICAgICAgICAgICAgICBjbG9zYWJsZTogZmFsc2VcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGZvciAobGV0IGl0ZW0gb2YgZXZlbnQuYm9keT8uaXRlbXMpIHtcbiAgICAgICAgICAgICAgICAgIGZvciAobGV0IGVyciBvZiBpdGVtPy51c2VyUm9sZU1hcHBpbmcpIHsgLyogQ3VycmVudGx5IDIwNyBpcyBoYW5kbGVkIG9ubHkgZm9yIHNpbmdsZSB1c2UgY2FzZSwgc28gaXQgaXMgaGFyZGNvZGVkLklmIHRoZXJlIGFyZSBtb3JlIHVzZSBjYXNlcywgdGhlbiB0aGlzIHNob3VsZCBiZSB1cGRhdGVkIGFjY29yZGluZ2x5LiAgKi9cbiAgICAgICAgICAgICAgICAgICAgaWYgKGVyci5lcnJvciAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnVXNlciBub3QgYWxsb3dlZCBmb3IgdGhpcyBvcGVyYXRpb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgbm90aWZpY2F0aW9uU3R5bGU6ICdlcnJvcicsXG4gICAgICAgICAgICAgICAgICAgICAgICBjbG9zYWJsZTogdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLnRvYXN0Tm90aWZpY2F0aW9uU2VydmljZS5zaG93VG9hc3ROb3RpZmljYXRpb24oe1xuICAgICAgICAgICAgICAgICAgY29udGVudDogbWVzc2FnZS5jb250ZW50LFxuICAgICAgICAgICAgICAgICAgdHlwZTogeyBzdHlsZTogbWVzc2FnZS5ub3RpZmljYXRpb25TdHlsZSwgaWNvbjogdHJ1ZSB9LFxuICAgICAgICAgICAgICAgICAgY2xvc2FibGU6IG1lc3NhZ2UuY2xvc2FibGUsXG4gICAgICAgICAgICAgICAgICBhY3Rpb246IHt9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIkV4Y2VwdGlvbiBvY2N1cnJlZCBhdCBIdHRwQXV0aEludGVyY2VwdG9yIDIwNyBub3RpZmljYXRpb25cIiwgZSk7XG4gICAgICAgICAgICAgICAgdGhpcy50b2FzdE5vdGlmaWNhdGlvblNlcnZpY2Uuc2hvd1RvYXN0Tm90aWZpY2F0aW9uKHtcbiAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGBUaGUgcmVxdWVzdCBoYXMgYmVlbiBhY2NlcHRlZCBmb3IgcHJvY2Vzc2luZywgYnV0IGhhcyBiZWVuIHBhcnRpYWxseSBjb21wbGV0ZWQuYCxcbiAgICAgICAgICAgICAgICAgIHR5cGU6IHsgc3R5bGU6ICdpbmZvJywgaWNvbjogdHJ1ZSB9LFxuICAgICAgICAgICAgICAgICAgY2xvc2FibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICBhY3Rpb246IHt9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KSxcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xuICAgICAgICBjb25zdCBsb2dpblR5cGUgPSBMb2NhbFN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oU3RvcmFnZUtleXMuTE9HSU5fVFlQRSk7XG5cbiAgICAgICAgc3dpdGNoIChlcnJvci5zdGF0dXMpIHtcbiAgICAgICAgICBjYXNlIDQwMTpcbiAgICAgICAgICAgIGlmIChsb2dpblR5cGUgPT09ICdzYW1sJyB8fCBsb2dpblR5cGUgPT09ICdvYXV0aCcpIHtcbiAgICAgICAgICAgICAgTG9jYWxTdG9yYWdlU2VydmljZS5yZW1vdmVJdGVtKFN0b3JhZ2VLZXlzLlVTRVJfTkFNRSk7XG4gICAgICAgICAgICAgIExvY2FsU3RvcmFnZVNlcnZpY2UucmVtb3ZlSXRlbShTdG9yYWdlS2V5cy5JU19SRU1FTUJFUl9NRSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBMb2NhbFN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0oU3RvcmFnZUtleXMuSVNfVVNFUl9PUkdfQU5EX1JPTEVfU0VULCBmYWxzZSk7XG4gICAgICAgICAgICBMb2NhbFN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0oU3RvcmFnZUtleXMuSVNfVVNFUl9BVVRIRU5USUNBVEVELCBmYWxzZSk7XG4gICAgICAgICAgICBMb2NhbFN0b3JhZ2VTZXJ2aWNlLnJlbW92ZUl0ZW0oU3RvcmFnZUtleXMuQVVUSF9UT0tFTik7XG4gICAgICAgICAgICBMb2NhbFN0b3JhZ2VTZXJ2aWNlLnJlbW92ZUl0ZW0oU3RvcmFnZUtleXMuTE9HSU5fVFlQRSk7XG4gICAgICAgICAgICBMb2NhbFN0b3JhZ2VTZXJ2aWNlLnJlbW92ZUl0ZW0oU3RvcmFnZUtleXMuSURFTlRJVFlfVE9LRU4pO1xuICAgICAgICAgICAgTG9jYWxTdG9yYWdlU2VydmljZS5yZW1vdmVJdGVtKFN0b3JhZ2VLZXlzLlVTRVJfT1JHX0FORF9ST0xFX1RPS0VOKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMucm91dGVyLnVybC5zdGFydHNXaXRoKCcvbG9naW4vdXNlci1sb2dpbicpKSB7XG4gICAgICAgICAgICAgIHRoaXMuaGFuZGxlVW5hdXRob3JpemVkRXJyb3IoZXJyb3IpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbG9naW4nXSkudGhlbigobmF2aWdhdGVkKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKG5hdmlnYXRlZCkge1xuICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVVbmF1dGhvcml6ZWRFcnJvcihlcnJvcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSA0MDI6XG4gICAgICAgICAgICBpZiAobG9naW5UeXBlID09PSAnc2FtbCcgfHwgbG9naW5UeXBlID09PSAnb2F1dGgnKSB7XG4gICAgICAgICAgICAgIExvY2FsU3RvcmFnZVNlcnZpY2UucmVtb3ZlSXRlbShTdG9yYWdlS2V5cy5VU0VSX05BTUUpO1xuICAgICAgICAgICAgICBMb2NhbFN0b3JhZ2VTZXJ2aWNlLnJlbW92ZUl0ZW0oU3RvcmFnZUtleXMuSVNfUkVNRU1CRVJfTUUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgTG9jYWxTdG9yYWdlU2VydmljZS5zZXRJdGVtKFN0b3JhZ2VLZXlzLklTX1VTRVJfT1JHX0FORF9ST0xFX1NFVCwgZmFsc2UpO1xuICAgICAgICAgICAgTG9jYWxTdG9yYWdlU2VydmljZS5zZXRJdGVtKFN0b3JhZ2VLZXlzLklTX1VTRVJfQVVUSEVOVElDQVRFRCwgZmFsc2UpO1xuICAgICAgICAgICAgTG9jYWxTdG9yYWdlU2VydmljZS5yZW1vdmVJdGVtKFN0b3JhZ2VLZXlzLkFVVEhfVE9LRU4pO1xuICAgICAgICAgICAgTG9jYWxTdG9yYWdlU2VydmljZS5yZW1vdmVJdGVtKFN0b3JhZ2VLZXlzLkxPR0lOX1RZUEUpO1xuICAgICAgICAgICAgTG9jYWxTdG9yYWdlU2VydmljZS5yZW1vdmVJdGVtKFN0b3JhZ2VLZXlzLklERU5USVRZX1RPS0VOKTtcbiAgICAgICAgICAgIExvY2FsU3RvcmFnZVNlcnZpY2UucmVtb3ZlSXRlbShTdG9yYWdlS2V5cy5VU0VSX09SR19BTkRfUk9MRV9UT0tFTik7XG5cbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2xvZ2luJ10pLnRoZW4oKG5hdmlnYXRlZCkgPT4ge1xuICAgICAgICAgICAgICBpZiAobmF2aWdhdGVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50b2FzdE5vdGlmaWNhdGlvblNlcnZpY2Uuc2hvd1RvYXN0Tm90aWZpY2F0aW9uKHtcbiAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGBMaWNlbnNlIGV4cGlyZWQsIHBsZWFzZSBjb250YWN0IHlvdXIgc3VwcG9ydCByZXByZXNlbnRhdGl2ZS5gLFxuICAgICAgICAgICAgICAgICAgdHlwZTogeyBzdHlsZTogJ2Vycm9yJywgaWNvbjogdHJ1ZSB9LFxuICAgICAgICAgICAgICAgICAgY2xvc2FibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICBhY3Rpb246IHt9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDQwMzpcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGZvciAobGV0IGVyciBvZiBlcnJvci5lcnJvci5lcnJvcnMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRvYXN0Tm90aWZpY2F0aW9uU2VydmljZS5zaG93VG9hc3ROb3RpZmljYXRpb24oe1xuICAgICAgICAgICAgICAgICAgY29udGVudDogZXJyPy5yZWFzb24gfHwgYEZvcmJpZGRlbiB0byBhY2Nlc3MgdGhpcyByZXNvdXJjZS4gQWNjZXNzIGRlbmllZC5gLFxuICAgICAgICAgICAgICAgICAgdHlwZTogeyBzdHlsZTogJ2Vycm9yJywgaWNvbjogdHJ1ZSB9LFxuICAgICAgICAgICAgICAgICAgY2xvc2FibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICBhY3Rpb246IHt9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJIdHRwQXV0aEludGVyY2VwdG9yOiBFeGNlcHRpb24gb2NjdXJyZWQgYXQgNDAzXCIsIGUpO1xuICAgICAgICAgICAgICB0aGlzLnRvYXN0Tm90aWZpY2F0aW9uU2VydmljZS5zaG93VG9hc3ROb3RpZmljYXRpb24oe1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGBGb3JiaWRkZW4gdG8gYWNjZXNzIHRoaXMgcmVzb3VyY2UuIEFjY2VzcyBkZW5pZWQuYCxcbiAgICAgICAgICAgICAgICB0eXBlOiB7IHN0eWxlOiAnZXJyb3InLCBpY29uOiB0cnVlIH0sXG4gICAgICAgICAgICAgICAgY2xvc2FibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgYWN0aW9uOiB7fVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgNDA1OlxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgZm9yIChsZXQgZXJyIG9mIGVycm9yLmVycm9yLmVycm9ycykge1xuICAgICAgICAgICAgICAgIHRoaXMudG9hc3ROb3RpZmljYXRpb25TZXJ2aWNlLnNob3dUb2FzdE5vdGlmaWNhdGlvbih7XG4gICAgICAgICAgICAgICAgICBjb250ZW50OiBlcnI/LnJlYXNvbiB8fCBgSFRUUCBtZXRob2Qgbm90IGFsbG93ZWQuYCxcbiAgICAgICAgICAgICAgICAgIHR5cGU6IHsgc3R5bGU6ICdlcnJvcicsIGljb246IHRydWUgfSxcbiAgICAgICAgICAgICAgICAgIGNsb3NhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgYWN0aW9uOiB7fVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiSHR0cEF1dGhJbnRlcmNlcHRvcjogRXhjZXB0aW9uIG9jY3VycmVkIGF0IDQwNVwiLCBlKTtcbiAgICAgICAgICAgICAgdGhpcy50b2FzdE5vdGlmaWNhdGlvblNlcnZpY2Uuc2hvd1RvYXN0Tm90aWZpY2F0aW9uKHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBgSFRUUCBtZXRob2Qgbm90IGFsbG93ZWQuYCxcbiAgICAgICAgICAgICAgICB0eXBlOiB7IHN0eWxlOiAnZXJyb3InLCBpY29uOiB0cnVlIH0sXG4gICAgICAgICAgICAgICAgY2xvc2FibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgYWN0aW9uOiB7fVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgNTAwOlxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgZm9yIChsZXQgZXJyIG9mIGVycm9yPy5lcnJvcj8uZXJyb3JzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50b2FzdE5vdGlmaWNhdGlvblNlcnZpY2Uuc2hvd1RvYXN0Tm90aWZpY2F0aW9uKHtcbiAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGVycj8ubWVzc2FnZSB8fCBgU29tZXRoaW5nIHdlbnQgd3JvbmcuIFBsZWFzZSB0cnkgYWdhaW4uYCxcbiAgICAgICAgICAgICAgICAgIHR5cGU6IHsgc3R5bGU6ICdlcnJvcicsIGljb246IHRydWUgfSxcbiAgICAgICAgICAgICAgICAgIGNsb3NhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgYWN0aW9uOiB7fVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiSHR0cEF1dGhJbnRlcmNlcHRvcjogRXhjZXB0aW9uIG9jY3VycmVkIGF0IDUwMFwiLCBlKTtcbiAgICAgICAgICAgICAgdGhpcy50b2FzdE5vdGlmaWNhdGlvblNlcnZpY2Uuc2hvd1RvYXN0Tm90aWZpY2F0aW9uKHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBgU29tZXRoaW5nIHdlbnQgd3JvbmcuIFBsZWFzZSB0cnkgYWdhaW4uYCxcbiAgICAgICAgICAgICAgICB0eXBlOiB7IHN0eWxlOiAnZXJyb3InLCBpY29uOiB0cnVlIH0sXG4gICAgICAgICAgICAgICAgY2xvc2FibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgYWN0aW9uOiB7fVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgNTAyOlxuICAgICAgICAgICAgdGhpcy50b2FzdE5vdGlmaWNhdGlvblNlcnZpY2Uuc2hvd1RvYXN0Tm90aWZpY2F0aW9uKHtcbiAgICAgICAgICAgICAgY29udGVudDogYEJhZCBHYXRld2F5LiBQbGVhc2UgdHJ5IGFnYWluLmAsXG4gICAgICAgICAgICAgIHR5cGU6IHsgc3R5bGU6ICdlcnJvcicsIGljb246IHRydWUgfSxcbiAgICAgICAgICAgICAgY2xvc2FibGU6IHRydWUsXG4gICAgICAgICAgICAgIGFjdGlvbjoge31cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSA1MDM6XG4gICAgICAgICAgICB0aGlzLnRvYXN0Tm90aWZpY2F0aW9uU2VydmljZS5zaG93VG9hc3ROb3RpZmljYXRpb24oe1xuICAgICAgICAgICAgICBjb250ZW50OiBgU2VydmljZSBVbmF2YWlsYWJsZS4gUGxlYXNlIHRyeSBhZ2Fpbi5gLFxuICAgICAgICAgICAgICB0eXBlOiB7IHN0eWxlOiAnZXJyb3InLCBpY29uOiB0cnVlIH0sXG4gICAgICAgICAgICAgIGNsb3NhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICBhY3Rpb246IHt9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICBjYXNlIDUwNDpcbiAgICAgICAgICAgIHRoaXMudG9hc3ROb3RpZmljYXRpb25TZXJ2aWNlLnNob3dUb2FzdE5vdGlmaWNhdGlvbih7XG4gICAgICAgICAgICAgIGNvbnRlbnQ6IGBVbmFibGUgdG8gcmVhY2ggc2VydmVyLiBQbGVhc2UgdHJ5IGFnYWluLmAsXG4gICAgICAgICAgICAgIHR5cGU6IHsgc3R5bGU6ICdlcnJvcicsIGljb246IHRydWUgfSxcbiAgICAgICAgICAgICAgY2xvc2FibGU6IHRydWUsXG4gICAgICAgICAgICAgIGFjdGlvbjoge31cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlcnJvcilcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGhhbmRsZVVuYXV0aG9yaXplZEVycm9yKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkge1xuICAgIHRyeSB7XG4gICAgICBmb3IgKGxldCBlcnIgb2YgZXJyb3I/LmVycm9yPy5lcnJvcnMpIHtcbiAgICAgICAgbGV0IG1lc3NhZ2UgPSAnJztcbiAgICAgICAgaWYgKGVycj8ubWVzc2FnZS50b0xvd2VyQ2FzZSgpID09PSAnaW52YWxpZCBjcmVkZW50aWFscycpIHtcbiAgICAgICAgICBtZXNzYWdlID0gJ0ludmFsaWQgdXNlcm5hbWUgb3IgcGFzc3dvcmQuJztcbiAgICAgICAgfSBlbHNlIGlmIChlcnI/Lm1lc3NhZ2UuaW5jbHVkZXMoJ2V4cGlyZWQnKSkge1xuICAgICAgICAgIG1lc3NhZ2UgPSAnWW91ciBzZXNzaW9uIGhhcyBleHBpcmVkLiBQbGVhc2UgbG9naW4gYWdhaW4uJztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnRvYXN0Tm90aWZpY2F0aW9uU2VydmljZS5zaG93VG9hc3ROb3RpZmljYXRpb24oe1xuICAgICAgICAgIGNvbnRlbnQ6IG1lc3NhZ2UgfHwgZXJyPy5tZXNzYWdlIHx8IGBVbmF1dGhvcml6ZWRgLFxuICAgICAgICAgIHR5cGU6IHsgc3R5bGU6ICdlcnJvcicsIGljb246IHRydWUgfSxcbiAgICAgICAgICBjbG9zYWJsZTogdHJ1ZSxcbiAgICAgICAgICBhY3Rpb246IHt9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUubG9nKFwiSHR0cEF1dGhJbnRlcmNlcHRvcjogRXhjZXB0aW9uIG9jY3VycmVkIGF0IDQwMVwiLCBlKTtcbiAgICAgIHRoaXMudG9hc3ROb3RpZmljYXRpb25TZXJ2aWNlLnNob3dUb2FzdE5vdGlmaWNhdGlvbih7XG4gICAgICAgIGNvbnRlbnQ6IGBTb21ldGhpbmcgd2VudCB3cm9uZy4gUGxlYXNlIHRyeSBhZ2Fpbi5gLFxuICAgICAgICB0eXBlOiB7IHN0eWxlOiAnZXJyb3InLCBpY29uOiB0cnVlIH0sXG4gICAgICAgIGNsb3NhYmxlOiB0cnVlLFxuICAgICAgICBhY3Rpb246IHt9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -89,36 +89,16 @@ class HttpAuthInterceptor {
|
|
|
89
89
|
LocalStorageService.removeItem(StorageKeys.LOGIN_TYPE);
|
|
90
90
|
LocalStorageService.removeItem(StorageKeys.IDENTITY_TOKEN);
|
|
91
91
|
LocalStorageService.removeItem(StorageKeys.USER_ORG_AND_ROLE_TOKEN);
|
|
92
|
-
this.router.
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
}
|
|
100
|
-
else if (err?.message.includes('expired')) {
|
|
101
|
-
message = 'Your session has expired. Please login again.';
|
|
102
|
-
}
|
|
103
|
-
this.toastNotificationService.showToastNotification({
|
|
104
|
-
content: message || err?.message || `Unauthorized`,
|
|
105
|
-
type: { style: 'error', icon: true },
|
|
106
|
-
closable: true,
|
|
107
|
-
action: {}
|
|
108
|
-
});
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
catch (e) {
|
|
112
|
-
console.log("HttpAuthInterceptor: Exception occurred at 401", e);
|
|
113
|
-
this.toastNotificationService.showToastNotification({
|
|
114
|
-
content: `Something went wrong. Please try again.`,
|
|
115
|
-
type: { style: 'error', icon: true },
|
|
116
|
-
closable: true,
|
|
117
|
-
action: {}
|
|
118
|
-
});
|
|
92
|
+
if (this.router.url.startsWith('/login/user-login')) {
|
|
93
|
+
this.handleUnauthorizedError(error);
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
this.router.navigate(['/login']).then((navigated) => {
|
|
97
|
+
if (navigated) {
|
|
98
|
+
this.handleUnauthorizedError(error);
|
|
119
99
|
}
|
|
120
|
-
}
|
|
121
|
-
}
|
|
100
|
+
});
|
|
101
|
+
}
|
|
122
102
|
break;
|
|
123
103
|
case 402:
|
|
124
104
|
if (loginType === 'saml' || loginType === 'oauth') {
|
|
@@ -234,6 +214,34 @@ class HttpAuthInterceptor {
|
|
|
234
214
|
return throwError(() => error);
|
|
235
215
|
}));
|
|
236
216
|
}
|
|
217
|
+
handleUnauthorizedError(error) {
|
|
218
|
+
try {
|
|
219
|
+
for (let err of error?.error?.errors) {
|
|
220
|
+
let message = '';
|
|
221
|
+
if (err?.message.toLowerCase() === 'invalid credentials') {
|
|
222
|
+
message = 'Invalid username or password.';
|
|
223
|
+
}
|
|
224
|
+
else if (err?.message.includes('expired')) {
|
|
225
|
+
message = 'Your session has expired. Please login again.';
|
|
226
|
+
}
|
|
227
|
+
this.toastNotificationService.showToastNotification({
|
|
228
|
+
content: message || err?.message || `Unauthorized`,
|
|
229
|
+
type: { style: 'error', icon: true },
|
|
230
|
+
closable: true,
|
|
231
|
+
action: {}
|
|
232
|
+
});
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
catch (e) {
|
|
236
|
+
console.log("HttpAuthInterceptor: Exception occurred at 401", e);
|
|
237
|
+
this.toastNotificationService.showToastNotification({
|
|
238
|
+
content: `Something went wrong. Please try again.`,
|
|
239
|
+
type: { style: 'error', icon: true },
|
|
240
|
+
closable: true,
|
|
241
|
+
action: {}
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
}
|
|
237
245
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HttpAuthInterceptor, deps: [{ token: i1.Router }, { token: i2.ToastNotificationService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
238
246
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HttpAuthInterceptor, providedIn: 'root' }); }
|
|
239
247
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"progress-chef-platform-http-interceptor.mjs","sources":["../../../projects/platform-http-interceptor/src/lib/http-auth.interceptor.ts","../../../projects/platform-http-interceptor/src/public-api.ts","../../../projects/platform-http-interceptor/src/progress-chef-platform-http-interceptor.ts"],"sourcesContent":["import {\n HttpErrorResponse, HttpEvent, HttpEventType, HttpHandler, HttpInterceptor, HttpRequest\n} from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { LocalStorageService, StorageKeys } from '@progress-chef/platform-storage-service';\nimport { ToastNotificationService } from '@progress-chef/toast-notification';\nimport { Observable, catchError, tap, throwError } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\n\nexport class HttpAuthInterceptor implements HttpInterceptor {\n authTokenSet = new Set();\n isSessionExpired = false;\n constructor(\n private router: Router,\n private readonly toastNotificationService: ToastNotificationService\n ) { }\n\n intercept(request: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>> {\n let authToken = LocalStorageService.getItem(StorageKeys.AUTH_TOKEN);\n let authReq = request;\n if (authToken) {\n authReq = request.clone({\n setHeaders: {\n Authorization: `Bearer ${authToken}`\n }\n })\n if (!this.authTokenSet.has(authToken)) {\n this.isSessionExpired = false;\n }\n this.authTokenSet.add(authToken);\n }\n return next.handle(authReq).pipe(\n tap((event) => {\n if (event.type === HttpEventType.Response) {\n switch (event.status) {\n case 202:\n this.toastNotificationService.showToastNotification({\n content: event?.body?.item?.message || `Request under processing`,\n type: { style: 'info', icon: true },\n closable: true,\n action: {}\n });\n break;\n case 207:\n let message = {\n content: 'Request was successful',\n notificationStyle: 'success',\n closable: false\n }\n try {\n for (let item of event.body?.items) {\n for (let err of item?.userRoleMapping) { /* Currently 207 is handled only for single use case, so it is hardcoded.If there are more use cases, then this should be updated accordingly. */\n if (err.error !== null) {\n message = {\n content: 'User not allowed for this operation',\n notificationStyle: 'error',\n closable: true\n }\n }\n }\n }\n this.toastNotificationService.showToastNotification({\n content: message.content,\n type: { style: message.notificationStyle, icon: true },\n closable: message.closable,\n action: {}\n });\n } catch (e) {\n console.log(\"Exception occurred at HttpAuthInterceptor 207 notification\", e);\n this.toastNotificationService.showToastNotification({\n content: `The request has been accepted for processing, but has been partially completed.`,\n type: { style: 'info', icon: true },\n closable: true,\n action: {}\n });\n }\n break;\n }\n }\n }),\n catchError((error: HttpErrorResponse) => {\n const loginType = LocalStorageService.getItem(StorageKeys.LOGIN_TYPE);\n\n switch (error.status) {\n case 401:\n if (loginType === 'saml' || loginType === 'oauth') {\n LocalStorageService.removeItem(StorageKeys.USER_NAME);\n LocalStorageService.removeItem(StorageKeys.IS_REMEMBER_ME);\n }\n LocalStorageService.setItem(StorageKeys.IS_USER_ORG_AND_ROLE_SET, false);\n LocalStorageService.setItem(StorageKeys.IS_USER_AUTHENTICATED, false);\n LocalStorageService.removeItem(StorageKeys.AUTH_TOKEN);\n LocalStorageService.removeItem(StorageKeys.LOGIN_TYPE);\n LocalStorageService.removeItem(StorageKeys.IDENTITY_TOKEN);\n LocalStorageService.removeItem(StorageKeys.USER_ORG_AND_ROLE_TOKEN);\n\n this.router.navigate(['/login']).then((navigated) => {\n if (navigated) {\n try {\n for (let err of error?.error?.errors) {\n let message = '';\n if (err?.message.toLowerCase() === 'invalid credentials') {\n message = 'Invalid username or password.';\n } else if (err?.message.includes('expired')) {\n message = 'Your session has expired. Please login again.';\n }\n this.toastNotificationService.showToastNotification({\n content: message || err?.message || `Unauthorized`,\n type: { style: 'error', icon: true },\n closable: true,\n action: {}\n });\n }\n } catch (e) {\n console.log(\"HttpAuthInterceptor: Exception occurred at 401\", e);\n this.toastNotificationService.showToastNotification({\n content: `Something went wrong. Please try again.`,\n type: { style: 'error', icon: true },\n closable: true,\n action: {}\n });\n }\n }\n })\n break;\n case 402:\n if (loginType === 'saml' || loginType === 'oauth') {\n LocalStorageService.removeItem(StorageKeys.USER_NAME);\n LocalStorageService.removeItem(StorageKeys.IS_REMEMBER_ME);\n }\n LocalStorageService.setItem(StorageKeys.IS_USER_ORG_AND_ROLE_SET, false);\n LocalStorageService.setItem(StorageKeys.IS_USER_AUTHENTICATED, false);\n LocalStorageService.removeItem(StorageKeys.AUTH_TOKEN);\n LocalStorageService.removeItem(StorageKeys.LOGIN_TYPE);\n LocalStorageService.removeItem(StorageKeys.IDENTITY_TOKEN);\n LocalStorageService.removeItem(StorageKeys.USER_ORG_AND_ROLE_TOKEN);\n\n this.router.navigate(['/login']).then((navigated) => {\n if (navigated) {\n this.toastNotificationService.showToastNotification({\n content: `License expired, please contact your support representative.`,\n type: { style: 'error', icon: true },\n closable: true,\n action: {}\n });\n }\n })\n break;\n case 403:\n try {\n for (let err of error.error.errors) {\n this.toastNotificationService.showToastNotification({\n content: err?.reason || `Forbidden to access this resource. Access denied.`,\n type: { style: 'error', icon: true },\n closable: true,\n action: {}\n });\n }\n } catch (e) {\n console.log(\"HttpAuthInterceptor: Exception occurred at 403\", e);\n this.toastNotificationService.showToastNotification({\n content: `Forbidden to access this resource. Access denied.`,\n type: { style: 'error', icon: true },\n closable: true,\n action: {}\n });\n }\n break;\n case 405:\n try {\n for (let err of error.error.errors) {\n this.toastNotificationService.showToastNotification({\n content: err?.reason || `HTTP method not allowed.`,\n type: { style: 'error', icon: true },\n closable: true,\n action: {}\n });\n }\n } catch (e) {\n console.log(\"HttpAuthInterceptor: Exception occurred at 405\", e);\n this.toastNotificationService.showToastNotification({\n content: `HTTP method not allowed.`,\n type: { style: 'error', icon: true },\n closable: true,\n action: {}\n });\n }\n break;\n case 500:\n try {\n for (let err of error?.error?.errors) {\n this.toastNotificationService.showToastNotification({\n content: err?.message || `Something went wrong. Please try again.`,\n type: { style: 'error', icon: true },\n closable: true,\n action: {}\n });\n }\n } catch (e) {\n console.log(\"HttpAuthInterceptor: Exception occurred at 500\", e);\n this.toastNotificationService.showToastNotification({\n content: `Something went wrong. Please try again.`,\n type: { style: 'error', icon: true },\n closable: true,\n action: {}\n });\n }\n break;\n case 502:\n this.toastNotificationService.showToastNotification({\n content: `Bad Gateway. Please try again.`,\n type: { style: 'error', icon: true },\n closable: true,\n action: {}\n });\n break;\n case 503:\n this.toastNotificationService.showToastNotification({\n content: `Service Unavailable. Please try again.`,\n type: { style: 'error', icon: true },\n closable: true,\n action: {}\n });\n break;\n case 0:\n case 504:\n this.toastNotificationService.showToastNotification({\n content: `Unable to reach server. Please try again.`,\n type: { style: 'error', icon: true },\n closable: true,\n action: {}\n });\n break;\n\n }\n return throwError(() => error)\n })\n );\n }\n}\n","/*\n * Public API Surface of platform-http-interceptor\n */\n\nexport * from './lib/http-auth.interceptor';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"progress-chef-platform-http-interceptor.mjs","sources":["../../../projects/platform-http-interceptor/src/lib/http-auth.interceptor.ts","../../../projects/platform-http-interceptor/src/public-api.ts","../../../projects/platform-http-interceptor/src/progress-chef-platform-http-interceptor.ts"],"sourcesContent":["import {\n HttpErrorResponse, HttpEvent, HttpEventType, HttpHandler, HttpInterceptor, HttpRequest\n} from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { LocalStorageService, StorageKeys } from '@progress-chef/platform-storage-service';\nimport { ToastNotificationService } from '@progress-chef/toast-notification';\nimport { Observable, catchError, tap, throwError } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\n\nexport class HttpAuthInterceptor implements HttpInterceptor {\n authTokenSet = new Set();\n isSessionExpired = false;\n constructor(\n private router: Router,\n private readonly toastNotificationService: ToastNotificationService\n ) { }\n\n intercept(request: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>> {\n let authToken = LocalStorageService.getItem(StorageKeys.AUTH_TOKEN);\n let authReq = request;\n if (authToken) {\n authReq = request.clone({\n setHeaders: {\n Authorization: `Bearer ${authToken}`\n }\n })\n if (!this.authTokenSet.has(authToken)) {\n this.isSessionExpired = false;\n }\n this.authTokenSet.add(authToken);\n }\n return next.handle(authReq).pipe(\n tap((event) => {\n if (event.type === HttpEventType.Response) {\n switch (event.status) {\n case 202:\n this.toastNotificationService.showToastNotification({\n content: event?.body?.item?.message || `Request under processing`,\n type: { style: 'info', icon: true },\n closable: true,\n action: {}\n });\n break;\n case 207:\n let message = {\n content: 'Request was successful',\n notificationStyle: 'success',\n closable: false\n }\n try {\n for (let item of event.body?.items) {\n for (let err of item?.userRoleMapping) { /* Currently 207 is handled only for single use case, so it is hardcoded.If there are more use cases, then this should be updated accordingly. */\n if (err.error !== null) {\n message = {\n content: 'User not allowed for this operation',\n notificationStyle: 'error',\n closable: true\n }\n }\n }\n }\n this.toastNotificationService.showToastNotification({\n content: message.content,\n type: { style: message.notificationStyle, icon: true },\n closable: message.closable,\n action: {}\n });\n } catch (e) {\n console.log(\"Exception occurred at HttpAuthInterceptor 207 notification\", e);\n this.toastNotificationService.showToastNotification({\n content: `The request has been accepted for processing, but has been partially completed.`,\n type: { style: 'info', icon: true },\n closable: true,\n action: {}\n });\n }\n break;\n }\n }\n }),\n catchError((error: HttpErrorResponse) => {\n const loginType = LocalStorageService.getItem(StorageKeys.LOGIN_TYPE);\n\n switch (error.status) {\n case 401:\n if (loginType === 'saml' || loginType === 'oauth') {\n LocalStorageService.removeItem(StorageKeys.USER_NAME);\n LocalStorageService.removeItem(StorageKeys.IS_REMEMBER_ME);\n }\n LocalStorageService.setItem(StorageKeys.IS_USER_ORG_AND_ROLE_SET, false);\n LocalStorageService.setItem(StorageKeys.IS_USER_AUTHENTICATED, false);\n LocalStorageService.removeItem(StorageKeys.AUTH_TOKEN);\n LocalStorageService.removeItem(StorageKeys.LOGIN_TYPE);\n LocalStorageService.removeItem(StorageKeys.IDENTITY_TOKEN);\n LocalStorageService.removeItem(StorageKeys.USER_ORG_AND_ROLE_TOKEN);\n\n if (this.router.url.startsWith('/login/user-login')) {\n this.handleUnauthorizedError(error);\n } else {\n this.router.navigate(['/login']).then((navigated) => {\n if (navigated) {\n this.handleUnauthorizedError(error);\n }\n })\n }\n break;\n case 402:\n if (loginType === 'saml' || loginType === 'oauth') {\n LocalStorageService.removeItem(StorageKeys.USER_NAME);\n LocalStorageService.removeItem(StorageKeys.IS_REMEMBER_ME);\n }\n LocalStorageService.setItem(StorageKeys.IS_USER_ORG_AND_ROLE_SET, false);\n LocalStorageService.setItem(StorageKeys.IS_USER_AUTHENTICATED, false);\n LocalStorageService.removeItem(StorageKeys.AUTH_TOKEN);\n LocalStorageService.removeItem(StorageKeys.LOGIN_TYPE);\n LocalStorageService.removeItem(StorageKeys.IDENTITY_TOKEN);\n LocalStorageService.removeItem(StorageKeys.USER_ORG_AND_ROLE_TOKEN);\n\n this.router.navigate(['/login']).then((navigated) => {\n if (navigated) {\n this.toastNotificationService.showToastNotification({\n content: `License expired, please contact your support representative.`,\n type: { style: 'error', icon: true },\n closable: true,\n action: {}\n });\n }\n })\n break;\n case 403:\n try {\n for (let err of error.error.errors) {\n this.toastNotificationService.showToastNotification({\n content: err?.reason || `Forbidden to access this resource. Access denied.`,\n type: { style: 'error', icon: true },\n closable: true,\n action: {}\n });\n }\n } catch (e) {\n console.log(\"HttpAuthInterceptor: Exception occurred at 403\", e);\n this.toastNotificationService.showToastNotification({\n content: `Forbidden to access this resource. Access denied.`,\n type: { style: 'error', icon: true },\n closable: true,\n action: {}\n });\n }\n break;\n case 405:\n try {\n for (let err of error.error.errors) {\n this.toastNotificationService.showToastNotification({\n content: err?.reason || `HTTP method not allowed.`,\n type: { style: 'error', icon: true },\n closable: true,\n action: {}\n });\n }\n } catch (e) {\n console.log(\"HttpAuthInterceptor: Exception occurred at 405\", e);\n this.toastNotificationService.showToastNotification({\n content: `HTTP method not allowed.`,\n type: { style: 'error', icon: true },\n closable: true,\n action: {}\n });\n }\n break;\n case 500:\n try {\n for (let err of error?.error?.errors) {\n this.toastNotificationService.showToastNotification({\n content: err?.message || `Something went wrong. Please try again.`,\n type: { style: 'error', icon: true },\n closable: true,\n action: {}\n });\n }\n } catch (e) {\n console.log(\"HttpAuthInterceptor: Exception occurred at 500\", e);\n this.toastNotificationService.showToastNotification({\n content: `Something went wrong. Please try again.`,\n type: { style: 'error', icon: true },\n closable: true,\n action: {}\n });\n }\n break;\n case 502:\n this.toastNotificationService.showToastNotification({\n content: `Bad Gateway. Please try again.`,\n type: { style: 'error', icon: true },\n closable: true,\n action: {}\n });\n break;\n case 503:\n this.toastNotificationService.showToastNotification({\n content: `Service Unavailable. Please try again.`,\n type: { style: 'error', icon: true },\n closable: true,\n action: {}\n });\n break;\n case 0:\n case 504:\n this.toastNotificationService.showToastNotification({\n content: `Unable to reach server. Please try again.`,\n type: { style: 'error', icon: true },\n closable: true,\n action: {}\n });\n break;\n\n }\n return throwError(() => error)\n })\n );\n }\n\n handleUnauthorizedError(error: HttpErrorResponse) {\n try {\n for (let err of error?.error?.errors) {\n let message = '';\n if (err?.message.toLowerCase() === 'invalid credentials') {\n message = 'Invalid username or password.';\n } else if (err?.message.includes('expired')) {\n message = 'Your session has expired. Please login again.';\n }\n this.toastNotificationService.showToastNotification({\n content: message || err?.message || `Unauthorized`,\n type: { style: 'error', icon: true },\n closable: true,\n action: {}\n });\n }\n } catch (e) {\n console.log(\"HttpAuthInterceptor: Exception occurred at 401\", e);\n this.toastNotificationService.showToastNotification({\n content: `Something went wrong. Please try again.`,\n type: { style: 'error', icon: true },\n closable: true,\n action: {}\n });\n }\n }\n}\n","/*\n * Public API Surface of platform-http-interceptor\n */\n\nexport * from './lib/http-auth.interceptor';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';
|
|
1
|
+
import { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';
|
|
2
2
|
import { Router } from '@angular/router';
|
|
3
3
|
import { ToastNotificationService } from '@progress-chef/toast-notification';
|
|
4
4
|
import { Observable } from 'rxjs';
|
|
@@ -10,6 +10,7 @@ export declare class HttpAuthInterceptor implements HttpInterceptor {
|
|
|
10
10
|
isSessionExpired: boolean;
|
|
11
11
|
constructor(router: Router, toastNotificationService: ToastNotificationService);
|
|
12
12
|
intercept(request: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>>;
|
|
13
|
+
handleUnauthorizedError(error: HttpErrorResponse): void;
|
|
13
14
|
static ɵfac: i0.ɵɵFactoryDeclaration<HttpAuthInterceptor, never>;
|
|
14
15
|
static ɵprov: i0.ɵɵInjectableDeclaration<HttpAuthInterceptor>;
|
|
15
16
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@progress-chef/platform-http-interceptor",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.7",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/common": "^16.2.0",
|
|
6
6
|
"@angular/core": "^16.2.0"
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"dependencies": {
|
|
9
9
|
"tslib": "^2.3.0",
|
|
10
10
|
"@progress-chef/toast-notification": "0.0.4",
|
|
11
|
-
"@progress-chef/platform-storage-service": "1.0.
|
|
11
|
+
"@progress-chef/platform-storage-service": "1.0.17"
|
|
12
12
|
},
|
|
13
13
|
"sideEffects": false,
|
|
14
14
|
"publishConfig": {
|