@progress-chef/platform-http-interceptor 0.0.3-rc1 → 0.0.4
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.
|
@@ -2,65 +2,66 @@ import { Inject, Injectable } from '@angular/core';
|
|
|
2
2
|
import { LocalStorageService, StorageKeys } from '@progress-chef/platform-storage-service';
|
|
3
3
|
import { catchError, throwError } from 'rxjs';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@
|
|
6
|
-
import * as i2 from "@progress-chef/platform-shared-
|
|
5
|
+
import * as i1 from "@angular/router";
|
|
6
|
+
import * as i2 from "@progress-chef/platform-shared-components";
|
|
7
7
|
export class HttpAuthInterceptor {
|
|
8
|
-
constructor(
|
|
9
|
-
this.getBaseUrl = getBaseUrl;
|
|
8
|
+
constructor(toastNotificationService, router) {
|
|
10
9
|
this.toastNotificationService = toastNotificationService;
|
|
11
|
-
this.
|
|
10
|
+
this.router = router;
|
|
12
11
|
}
|
|
13
12
|
intercept(request, next) {
|
|
14
13
|
let authToken = LocalStorageService.getItem(StorageKeys.AUTH_TOKEN);
|
|
14
|
+
let authReq = request;
|
|
15
15
|
if (authToken) {
|
|
16
|
-
|
|
16
|
+
authReq = request.clone({
|
|
17
17
|
setHeaders: {
|
|
18
18
|
Authorization: `Bearer ${authToken}`
|
|
19
19
|
}
|
|
20
20
|
});
|
|
21
|
-
return next.handle(authReq).pipe(catchError((error) => {
|
|
22
|
-
if (error.status === 401) {
|
|
23
|
-
const loginType = LocalStorageService.getItem(StorageKeys.LOGIN_TYPE);
|
|
24
|
-
if (loginType === 'saml' || loginType === 'oauth') {
|
|
25
|
-
LocalStorageService.removeItem(StorageKeys.USER_NAME);
|
|
26
|
-
LocalStorageService.removeItem(StorageKeys.IS_REMEMBER_ME);
|
|
27
|
-
}
|
|
28
|
-
LocalStorageService.setItem(StorageKeys.IS_USER_ORG_AND_ROLE_SET, false);
|
|
29
|
-
LocalStorageService.setItem(StorageKeys.IS_USER_AUTHENTICATED, false);
|
|
30
|
-
LocalStorageService.removeItem(StorageKeys.LOGIN_TYPE);
|
|
31
|
-
LocalStorageService.removeItem(StorageKeys.IDENTITY_TOKEN);
|
|
32
|
-
LocalStorageService.removeItem(StorageKeys.USER_ORG_AND_ROLE_TOKEN);
|
|
33
|
-
// call logout action
|
|
34
|
-
this.chefPlatformUserAccountsIdentitySharedFacadeService.identityLogoutIdentity({
|
|
35
|
-
baseUrl: this.getBaseUrl
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
if (error.status === 0 || error.status === 504) {
|
|
39
|
-
this.toastNotificationService.showToastNotification({
|
|
40
|
-
content: `Unable to reach server. Please try again.`,
|
|
41
|
-
type: { style: 'error', icon: true },
|
|
42
|
-
closable: true
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
if (error.status === 500) {
|
|
46
|
-
this.toastNotificationService.showToastNotification({
|
|
47
|
-
content: `Something went wrong. Please try again.`,
|
|
48
|
-
type: { style: 'error', icon: true },
|
|
49
|
-
closable: true
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
return throwError(() => error);
|
|
53
|
-
}));
|
|
54
21
|
}
|
|
55
|
-
return next.handle(
|
|
22
|
+
return next.handle(authReq).pipe(catchError((error) => {
|
|
23
|
+
if (error.status === 401) {
|
|
24
|
+
const loginType = LocalStorageService.getItem(StorageKeys.LOGIN_TYPE);
|
|
25
|
+
if (loginType === 'saml' || loginType === 'oauth') {
|
|
26
|
+
LocalStorageService.removeItem(StorageKeys.USER_NAME);
|
|
27
|
+
LocalStorageService.removeItem(StorageKeys.IS_REMEMBER_ME);
|
|
28
|
+
}
|
|
29
|
+
LocalStorageService.setItem(StorageKeys.IS_USER_ORG_AND_ROLE_SET, false);
|
|
30
|
+
LocalStorageService.setItem(StorageKeys.IS_USER_AUTHENTICATED, false);
|
|
31
|
+
LocalStorageService.removeItem(StorageKeys.AUTH_TOKEN);
|
|
32
|
+
LocalStorageService.removeItem(StorageKeys.LOGIN_TYPE);
|
|
33
|
+
LocalStorageService.removeItem(StorageKeys.IDENTITY_TOKEN);
|
|
34
|
+
LocalStorageService.removeItem(StorageKeys.USER_ORG_AND_ROLE_TOKEN);
|
|
35
|
+
// call logout action
|
|
36
|
+
this.toastNotificationService.showToastNotification({
|
|
37
|
+
content: 'You have been logged out'
|
|
38
|
+
});
|
|
39
|
+
this.router.navigate(['/login']);
|
|
40
|
+
}
|
|
41
|
+
if (error.status === 0 || error.status === 504) {
|
|
42
|
+
this.toastNotificationService.showToastNotification({
|
|
43
|
+
content: `Unable to reach server. Please try again.`,
|
|
44
|
+
type: { style: 'error', icon: true },
|
|
45
|
+
closable: true
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
if (error.status === 500) {
|
|
49
|
+
this.toastNotificationService.showToastNotification({
|
|
50
|
+
content: `Something went wrong. Please try again.`,
|
|
51
|
+
type: { style: 'error', icon: true },
|
|
52
|
+
closable: true
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
return throwError(() => error);
|
|
56
|
+
}));
|
|
56
57
|
}
|
|
57
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HttpAuthInterceptor, deps: [{ token: 'BASE_URL' }, { token: i1.
|
|
58
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HttpAuthInterceptor, deps: [{ token: 'BASE_URL' }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
58
59
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HttpAuthInterceptor }); }
|
|
59
60
|
}
|
|
60
61
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HttpAuthInterceptor, decorators: [{
|
|
61
62
|
type: Injectable
|
|
62
|
-
}], ctorParameters: function () { return [{ type:
|
|
63
|
+
}], ctorParameters: function () { return [{ type: i2.ToastNotificationService, decorators: [{
|
|
63
64
|
type: Inject,
|
|
64
65
|
args: ['BASE_URL']
|
|
65
|
-
}] }, { type: i1.
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
66
|
+
}] }, { type: i1.Router }]; } });
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1hdXRoLmludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcGxhdGZvcm0taHR0cC1pbnRlcmNlcHRvci9zcmMvbGliL2h0dHAtYXV0aC5pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUduRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDM0YsT0FBTyxFQUFjLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7QUFHMUQsTUFBTSxPQUFPLG1CQUFtQjtJQUM5QixZQUF3Qyx3QkFBa0QsRUFBVSxNQUFjO1FBQTFFLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO0lBQUksQ0FBQztJQUV2SCxTQUFTLENBQUMsT0FBNkIsRUFBRSxJQUFpQjtRQUN4RCxJQUFJLFNBQVMsR0FBRyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3BFLElBQUksT0FBTyxHQUFJLE9BQU8sQ0FBQztRQUN2QixJQUFJLFNBQVMsRUFBRTtZQUNiLE9BQU8sR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO2dCQUN0QixVQUFVLEVBQUU7b0JBQ1YsYUFBYSxFQUFFLFVBQVUsU0FBUyxFQUFFO2lCQUNyQzthQUNGLENBQUMsQ0FBQTtTQUNIO1FBQ0QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDOUIsVUFBVSxDQUFDLENBQUMsS0FBd0IsRUFBRSxFQUFFO1lBQ3RDLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxHQUFHLEVBQUU7Z0JBQ3hCLE1BQU0sU0FBUyxHQUFHLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQ3RFLElBQUksU0FBUyxLQUFLLE1BQU0sSUFBSSxTQUFTLEtBQUssT0FBTyxFQUFFO29CQUNqRCxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO29CQUN0RCxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDO2lCQUM1RDtnQkFDRCxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLHdCQUF3QixFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUN6RSxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLHFCQUFxQixFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUN0RSxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUN2RCxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUN2RCxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUMzRCxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLHVCQUF1QixDQUFDLENBQUM7Z0JBQ3BFLHFCQUFxQjtnQkFDckIsSUFBSSxDQUFDLHdCQUF3QixDQUFDLHFCQUFxQixDQUFDO29CQUNsRCxPQUFPLEVBQUUsMEJBQTBCO2lCQUNwQyxDQUFDLENBQUM7Z0JBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFBO2FBQ2pDO1lBQ0QsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRTtnQkFDOUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLHFCQUFxQixDQUFDO29CQUNsRCxPQUFPLEVBQUUsMkNBQTJDO29CQUNwRCxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUU7b0JBQ3BDLFFBQVEsRUFBRSxJQUFJO2lCQUNmLENBQUMsQ0FBQTthQUNIO1lBQ0QsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRTtnQkFDeEIsSUFBSSxDQUFDLHdCQUF3QixDQUFDLHFCQUFxQixDQUFDO29CQUNsRCxPQUFPLEVBQUUseUNBQXlDO29CQUNsRCxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUU7b0JBQ3BDLFFBQVEsRUFBRSxJQUFJO2lCQUNmLENBQUMsQ0FBQTthQUNIO1lBQ0QsT0FBTyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDaEMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7K0dBbERVLG1CQUFtQixrQkFDVixVQUFVO21IQURuQixtQkFBbUI7OzRGQUFuQixtQkFBbUI7a0JBRC9CLFVBQVU7OzBCQUVJLE1BQU07MkJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEh0dHBFcnJvclJlc3BvbnNlLFxuICBIdHRwRXZlbnQsXG4gIEh0dHBIYW5kbGVyLFxuICBIdHRwSW50ZXJjZXB0b3IsXG4gIEh0dHBSZXF1ZXN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFRvYXN0Tm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJ0Bwcm9ncmVzcy1jaGVmL3BsYXRmb3JtLXNoYXJlZC1jb21wb25lbnRzJztcbmltcG9ydCB7IExvY2FsU3RvcmFnZVNlcnZpY2UsIFN0b3JhZ2VLZXlzIH0gZnJvbSAnQHByb2dyZXNzLWNoZWYvcGxhdGZvcm0tc3RvcmFnZS1zZXJ2aWNlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIGNhdGNoRXJyb3IsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEh0dHBBdXRoSW50ZXJjZXB0b3IgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3Ige1xuICBjb25zdHJ1Y3RvcihASW5qZWN0KCdCQVNFX1VSTCcpIHByaXZhdGUgdG9hc3ROb3RpZmljYXRpb25TZXJ2aWNlOiBUb2FzdE5vdGlmaWNhdGlvblNlcnZpY2UsIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIpIHsgfVxuXG4gIGludGVyY2VwdChyZXF1ZXN0OiBIdHRwUmVxdWVzdDx1bmtub3duPiwgbmV4dDogSHR0cEhhbmRsZXIpOiBPYnNlcnZhYmxlPEh0dHBFdmVudDx1bmtub3duPj4ge1xuICAgIGxldCBhdXRoVG9rZW4gPSBMb2NhbFN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oU3RvcmFnZUtleXMuQVVUSF9UT0tFTik7XG4gICAgbGV0IGF1dGhSZXEgPSAgcmVxdWVzdDtcbiAgICBpZiAoYXV0aFRva2VuKSB7XG4gICAgICBhdXRoUmVxID0gcmVxdWVzdC5jbG9uZSh7XG4gICAgICAgIHNldEhlYWRlcnM6IHtcbiAgICAgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7YXV0aFRva2VufWBcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG4gICAgcmV0dXJuIG5leHQuaGFuZGxlKGF1dGhSZXEpLnBpcGUoXG4gICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcbiAgICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PT0gNDAxKSB7XG4gICAgICAgICAgY29uc3QgbG9naW5UeXBlID0gTG9jYWxTdG9yYWdlU2VydmljZS5nZXRJdGVtKFN0b3JhZ2VLZXlzLkxPR0lOX1RZUEUpO1xuICAgICAgICAgIGlmIChsb2dpblR5cGUgPT09ICdzYW1sJyB8fCBsb2dpblR5cGUgPT09ICdvYXV0aCcpIHtcbiAgICAgICAgICAgIExvY2FsU3RvcmFnZVNlcnZpY2UucmVtb3ZlSXRlbShTdG9yYWdlS2V5cy5VU0VSX05BTUUpO1xuICAgICAgICAgICAgTG9jYWxTdG9yYWdlU2VydmljZS5yZW1vdmVJdGVtKFN0b3JhZ2VLZXlzLklTX1JFTUVNQkVSX01FKTsgXG4gICAgICAgICAgfVxuICAgICAgICAgIExvY2FsU3RvcmFnZVNlcnZpY2Uuc2V0SXRlbShTdG9yYWdlS2V5cy5JU19VU0VSX09SR19BTkRfUk9MRV9TRVQsIGZhbHNlKTtcbiAgICAgICAgICBMb2NhbFN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0oU3RvcmFnZUtleXMuSVNfVVNFUl9BVVRIRU5USUNBVEVELCBmYWxzZSk7XG4gICAgICAgICAgTG9jYWxTdG9yYWdlU2VydmljZS5yZW1vdmVJdGVtKFN0b3JhZ2VLZXlzLkFVVEhfVE9LRU4pO1xuICAgICAgICAgIExvY2FsU3RvcmFnZVNlcnZpY2UucmVtb3ZlSXRlbShTdG9yYWdlS2V5cy5MT0dJTl9UWVBFKTtcbiAgICAgICAgICBMb2NhbFN0b3JhZ2VTZXJ2aWNlLnJlbW92ZUl0ZW0oU3RvcmFnZUtleXMuSURFTlRJVFlfVE9LRU4pO1xuICAgICAgICAgIExvY2FsU3RvcmFnZVNlcnZpY2UucmVtb3ZlSXRlbShTdG9yYWdlS2V5cy5VU0VSX09SR19BTkRfUk9MRV9UT0tFTik7XG4gICAgICAgICAgLy8gY2FsbCBsb2dvdXQgYWN0aW9uXG4gICAgICAgICAgdGhpcy50b2FzdE5vdGlmaWNhdGlvblNlcnZpY2Uuc2hvd1RvYXN0Tm90aWZpY2F0aW9uKHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICdZb3UgaGF2ZSBiZWVuIGxvZ2dlZCBvdXQnXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbG9naW4nXSlcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXJyb3Iuc3RhdHVzID09PSAwIHx8IGVycm9yLnN0YXR1cyA9PT0gNTA0KSB7XG4gICAgICAgICAgdGhpcy50b2FzdE5vdGlmaWNhdGlvblNlcnZpY2Uuc2hvd1RvYXN0Tm90aWZpY2F0aW9uKHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IGBVbmFibGUgdG8gcmVhY2ggc2VydmVyLiBQbGVhc2UgdHJ5IGFnYWluLmAsXG4gICAgICAgICAgICB0eXBlOiB7IHN0eWxlOiAnZXJyb3InLCBpY29uOiB0cnVlIH0sXG4gICAgICAgICAgICBjbG9zYWJsZTogdHJ1ZVxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PT0gNTAwKSB7XG4gICAgICAgICAgdGhpcy50b2FzdE5vdGlmaWNhdGlvblNlcnZpY2Uuc2hvd1RvYXN0Tm90aWZpY2F0aW9uKHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IGBTb21ldGhpbmcgd2VudCB3cm9uZy4gUGxlYXNlIHRyeSBhZ2Fpbi5gLFxuICAgICAgICAgICAgdHlwZTogeyBzdHlsZTogJ2Vycm9yJywgaWNvbjogdHJ1ZSB9LFxuICAgICAgICAgICAgY2xvc2FibGU6IHRydWVcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGVycm9yKVxuICAgICAgfSlcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
@@ -2,68 +2,69 @@ import * as i0 from '@angular/core';
|
|
|
2
2
|
import { Injectable, Inject } from '@angular/core';
|
|
3
3
|
import { LocalStorageService, StorageKeys } from '@progress-chef/platform-storage-service';
|
|
4
4
|
import { catchError, throwError } from 'rxjs';
|
|
5
|
-
import * as i1 from '@
|
|
6
|
-
import * as i2 from '@progress-chef/platform-shared-
|
|
5
|
+
import * as i1 from '@angular/router';
|
|
6
|
+
import * as i2 from '@progress-chef/platform-shared-components';
|
|
7
7
|
|
|
8
8
|
class HttpAuthInterceptor {
|
|
9
|
-
constructor(
|
|
10
|
-
this.getBaseUrl = getBaseUrl;
|
|
9
|
+
constructor(toastNotificationService, router) {
|
|
11
10
|
this.toastNotificationService = toastNotificationService;
|
|
12
|
-
this.
|
|
11
|
+
this.router = router;
|
|
13
12
|
}
|
|
14
13
|
intercept(request, next) {
|
|
15
14
|
let authToken = LocalStorageService.getItem(StorageKeys.AUTH_TOKEN);
|
|
15
|
+
let authReq = request;
|
|
16
16
|
if (authToken) {
|
|
17
|
-
|
|
17
|
+
authReq = request.clone({
|
|
18
18
|
setHeaders: {
|
|
19
19
|
Authorization: `Bearer ${authToken}`
|
|
20
20
|
}
|
|
21
21
|
});
|
|
22
|
-
return next.handle(authReq).pipe(catchError((error) => {
|
|
23
|
-
if (error.status === 401) {
|
|
24
|
-
const loginType = LocalStorageService.getItem(StorageKeys.LOGIN_TYPE);
|
|
25
|
-
if (loginType === 'saml' || loginType === 'oauth') {
|
|
26
|
-
LocalStorageService.removeItem(StorageKeys.USER_NAME);
|
|
27
|
-
LocalStorageService.removeItem(StorageKeys.IS_REMEMBER_ME);
|
|
28
|
-
}
|
|
29
|
-
LocalStorageService.setItem(StorageKeys.IS_USER_ORG_AND_ROLE_SET, false);
|
|
30
|
-
LocalStorageService.setItem(StorageKeys.IS_USER_AUTHENTICATED, false);
|
|
31
|
-
LocalStorageService.removeItem(StorageKeys.LOGIN_TYPE);
|
|
32
|
-
LocalStorageService.removeItem(StorageKeys.IDENTITY_TOKEN);
|
|
33
|
-
LocalStorageService.removeItem(StorageKeys.USER_ORG_AND_ROLE_TOKEN);
|
|
34
|
-
// call logout action
|
|
35
|
-
this.chefPlatformUserAccountsIdentitySharedFacadeService.identityLogoutIdentity({
|
|
36
|
-
baseUrl: this.getBaseUrl
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
if (error.status === 0 || error.status === 504) {
|
|
40
|
-
this.toastNotificationService.showToastNotification({
|
|
41
|
-
content: `Unable to reach server. Please try again.`,
|
|
42
|
-
type: { style: 'error', icon: true },
|
|
43
|
-
closable: true
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
if (error.status === 500) {
|
|
47
|
-
this.toastNotificationService.showToastNotification({
|
|
48
|
-
content: `Something went wrong. Please try again.`,
|
|
49
|
-
type: { style: 'error', icon: true },
|
|
50
|
-
closable: true
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
return throwError(() => error);
|
|
54
|
-
}));
|
|
55
22
|
}
|
|
56
|
-
return next.handle(
|
|
23
|
+
return next.handle(authReq).pipe(catchError((error) => {
|
|
24
|
+
if (error.status === 401) {
|
|
25
|
+
const loginType = LocalStorageService.getItem(StorageKeys.LOGIN_TYPE);
|
|
26
|
+
if (loginType === 'saml' || loginType === 'oauth') {
|
|
27
|
+
LocalStorageService.removeItem(StorageKeys.USER_NAME);
|
|
28
|
+
LocalStorageService.removeItem(StorageKeys.IS_REMEMBER_ME);
|
|
29
|
+
}
|
|
30
|
+
LocalStorageService.setItem(StorageKeys.IS_USER_ORG_AND_ROLE_SET, false);
|
|
31
|
+
LocalStorageService.setItem(StorageKeys.IS_USER_AUTHENTICATED, false);
|
|
32
|
+
LocalStorageService.removeItem(StorageKeys.AUTH_TOKEN);
|
|
33
|
+
LocalStorageService.removeItem(StorageKeys.LOGIN_TYPE);
|
|
34
|
+
LocalStorageService.removeItem(StorageKeys.IDENTITY_TOKEN);
|
|
35
|
+
LocalStorageService.removeItem(StorageKeys.USER_ORG_AND_ROLE_TOKEN);
|
|
36
|
+
// call logout action
|
|
37
|
+
this.toastNotificationService.showToastNotification({
|
|
38
|
+
content: 'You have been logged out'
|
|
39
|
+
});
|
|
40
|
+
this.router.navigate(['/login']);
|
|
41
|
+
}
|
|
42
|
+
if (error.status === 0 || error.status === 504) {
|
|
43
|
+
this.toastNotificationService.showToastNotification({
|
|
44
|
+
content: `Unable to reach server. Please try again.`,
|
|
45
|
+
type: { style: 'error', icon: true },
|
|
46
|
+
closable: true
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
if (error.status === 500) {
|
|
50
|
+
this.toastNotificationService.showToastNotification({
|
|
51
|
+
content: `Something went wrong. Please try again.`,
|
|
52
|
+
type: { style: 'error', icon: true },
|
|
53
|
+
closable: true
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
return throwError(() => error);
|
|
57
|
+
}));
|
|
57
58
|
}
|
|
58
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HttpAuthInterceptor, deps: [{ token: 'BASE_URL' }, { token: i1.
|
|
59
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HttpAuthInterceptor, deps: [{ token: 'BASE_URL' }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
59
60
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HttpAuthInterceptor }); }
|
|
60
61
|
}
|
|
61
62
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HttpAuthInterceptor, decorators: [{
|
|
62
63
|
type: Injectable
|
|
63
|
-
}], ctorParameters: function () { return [{ type:
|
|
64
|
+
}], ctorParameters: function () { return [{ type: i2.ToastNotificationService, decorators: [{
|
|
64
65
|
type: Inject,
|
|
65
66
|
args: ['BASE_URL']
|
|
66
|
-
}] }, { type: i1.
|
|
67
|
+
}] }, { type: i1.Router }]; } });
|
|
67
68
|
|
|
68
69
|
/*
|
|
69
70
|
* Public API Surface of platform-http-interceptor
|
|
@@ -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,\n HttpEvent,\n HttpHandler,\n HttpInterceptor,\n HttpRequest\n} from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport {
|
|
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,\n HttpEvent,\n HttpHandler,\n HttpInterceptor,\n HttpRequest\n} from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { ToastNotificationService } from '@progress-chef/platform-shared-components';\nimport { LocalStorageService, StorageKeys } from '@progress-chef/platform-storage-service';\nimport { Observable, catchError, throwError } from 'rxjs';\n\n@Injectable()\nexport class HttpAuthInterceptor implements HttpInterceptor {\n constructor(@Inject('BASE_URL') private toastNotificationService: ToastNotificationService, private router: Router) { }\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 }\n return next.handle(authReq).pipe(\n catchError((error: HttpErrorResponse) => {\n if (error.status === 401) {\n const loginType = LocalStorageService.getItem(StorageKeys.LOGIN_TYPE);\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 // call logout action\n this.toastNotificationService.showToastNotification({\n content: 'You have been logged out'\n });\n this.router.navigate(['/login'])\n }\n if (error.status === 0 || error.status === 504) {\n this.toastNotificationService.showToastNotification({\n content: `Unable to reach server. Please try again.`,\n type: { style: 'error', icon: true },\n closable: true\n })\n }\n if (error.status === 500) {\n this.toastNotificationService.showToastNotification({\n content: `Something went wrong. Please try again.`,\n type: { style: 'error', icon: true },\n closable: true\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,13 +1,12 @@
|
|
|
1
1
|
import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';
|
|
2
|
+
import { Router } from '@angular/router';
|
|
2
3
|
import { ToastNotificationService } from '@progress-chef/platform-shared-components';
|
|
3
|
-
import { ChefPlatformUserAccountsIdentitySharedFacadeService } from '@progress-chef/platform-shared-store';
|
|
4
4
|
import { Observable } from 'rxjs';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
export declare class HttpAuthInterceptor implements HttpInterceptor {
|
|
7
|
-
private getBaseUrl;
|
|
8
7
|
private toastNotificationService;
|
|
9
|
-
private
|
|
10
|
-
constructor(
|
|
8
|
+
private router;
|
|
9
|
+
constructor(toastNotificationService: ToastNotificationService, router: Router);
|
|
11
10
|
intercept(request: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>>;
|
|
12
11
|
static ɵfac: i0.ɵɵFactoryDeclaration<HttpAuthInterceptor, never>;
|
|
13
12
|
static ɵprov: i0.ɵɵInjectableDeclaration<HttpAuthInterceptor>;
|