UNPKG

@netgrif/components-core

Version:

Netgrif Application engine frontend core Angular library

42 lines 6.42 kB
import { Injectable } from '@angular/core'; import { HttpErrorResponse, HttpResponse } from '@angular/common/http'; import { throwError } from 'rxjs'; import { catchError, tap } from 'rxjs/operators'; import * as i0 from "@angular/core"; import * as i1 from "../anonymous/anonymous.service"; export class AnonymousAuthenticationInterceptor { _anonymousService; constructor(_anonymousService) { this._anonymousService = _anonymousService; } intercept(req, next) { const jwtAuthToken = this._anonymousService.getToken(); if (!this._anonymousService) { next.handle(req); } if (!!jwtAuthToken) { req = req.clone({ headers: req.headers.set(this._anonymousService.jwtHeader, jwtAuthToken) }); } return next.handle(req).pipe(tap(event => { if (event instanceof HttpResponse) { if (event.headers.has(this._anonymousService.jwtHeader)) { this._anonymousService.setToken(event.headers.get(this._anonymousService.jwtHeader)); } } }), catchError(errorEvent => { if (errorEvent instanceof HttpErrorResponse && errorEvent.status === 401) { console.debug('Authentication token is invalid. Clearing session token'); this._anonymousService.removeToken(); } return throwError(errorEvent); })); } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AnonymousAuthenticationInterceptor, deps: [{ token: i1.AnonymousService }], target: i0.ɵɵFactoryTarget.Injectable }); static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AnonymousAuthenticationInterceptor }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AnonymousAuthenticationInterceptor, decorators: [{ type: Injectable }], ctorParameters: () => [{ type: i1.AnonymousService }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5vbnltb3VzLWF1dGhlbnRpY2F0aW9uLWludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzLWNvcmUvc3JjL2xpYi9hdXRoZW50aWNhdGlvbi9zZXJ2aWNlcy9hbm9ueW1vdXMtYXV0aGVudGljYXRpb24taW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsaUJBQWlCLEVBQXdELFlBQVksRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzNILE9BQU8sRUFBYSxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDNUMsT0FBTyxFQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBSS9DLE1BQU0sT0FBTyxrQ0FBa0M7SUFFckI7SUFBdEIsWUFBc0IsaUJBQW1DO1FBQW5DLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBa0I7SUFBRyxDQUFDO0lBRTdELFNBQVMsQ0FBQyxHQUFxQixFQUFFLElBQWlCO1FBQzlDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUV2RCxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQ3pCLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDcEI7UUFFRCxJQUFJLENBQUMsQ0FBQyxZQUFZLEVBQUU7WUFDaEIsR0FBRyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUM7Z0JBQ1osT0FBTyxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsWUFBWSxDQUFDO2FBQzNFLENBQUMsQ0FBQztTQUNOO1FBQ0QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FDeEIsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ1IsSUFBSSxLQUFLLFlBQVksWUFBWSxFQUFFO2dCQUMvQixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsRUFBRTtvQkFDckQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztpQkFDeEY7YUFDSjtRQUNMLENBQUMsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUNwQixJQUFJLFVBQVUsWUFBWSxpQkFBaUIsSUFBSSxVQUFVLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRTtnQkFDdEUsT0FBTyxDQUFDLEtBQUssQ0FBQyx5REFBeUQsQ0FBQyxDQUFDO2dCQUN6RSxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxFQUFFLENBQUM7YUFDeEM7WUFDRCxPQUFPLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ04sQ0FBQzt3R0FoQ1Esa0NBQWtDOzRHQUFsQyxrQ0FBa0M7OzRGQUFsQyxrQ0FBa0M7a0JBRDlDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtIdHRwRXJyb3JSZXNwb25zZSwgSHR0cEV2ZW50LCBIdHRwSGFuZGxlciwgSHR0cEludGVyY2VwdG9yLCBIdHRwUmVxdWVzdCwgSHR0cFJlc3BvbnNlfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge09ic2VydmFibGUsIHRocm93RXJyb3J9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtjYXRjaEVycm9yLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7QW5vbnltb3VzU2VydmljZX0gZnJvbSAnLi4vYW5vbnltb3VzL2Fub255bW91cy5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFub255bW91c0F1dGhlbnRpY2F0aW9uSW50ZXJjZXB0b3IgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3Ige1xuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIF9hbm9ueW1vdXNTZXJ2aWNlOiBBbm9ueW1vdXNTZXJ2aWNlKSB7fVxuXG4gICAgaW50ZXJjZXB0KHJlcTogSHR0cFJlcXVlc3Q8YW55PiwgbmV4dDogSHR0cEhhbmRsZXIpOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxhbnk+PiB7XG4gICAgICAgIGNvbnN0IGp3dEF1dGhUb2tlbiA9IHRoaXMuX2Fub255bW91c1NlcnZpY2UuZ2V0VG9rZW4oKTtcblxuICAgICAgICBpZiAoIXRoaXMuX2Fub255bW91c1NlcnZpY2UpIHtcbiAgICAgICAgICAgIG5leHQuaGFuZGxlKHJlcSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoISFqd3RBdXRoVG9rZW4pIHtcbiAgICAgICAgICAgIHJlcSA9IHJlcS5jbG9uZSh7XG4gICAgICAgICAgICAgICAgaGVhZGVyczogcmVxLmhlYWRlcnMuc2V0KHRoaXMuX2Fub255bW91c1NlcnZpY2Uuand0SGVhZGVyLCBqd3RBdXRoVG9rZW4pXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxKS5waXBlKFxuICAgICAgICAgICAgdGFwKGV2ZW50ID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBIdHRwUmVzcG9uc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmhlYWRlcnMuaGFzKHRoaXMuX2Fub255bW91c1NlcnZpY2Uuand0SGVhZGVyKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fYW5vbnltb3VzU2VydmljZS5zZXRUb2tlbihldmVudC5oZWFkZXJzLmdldCh0aGlzLl9hbm9ueW1vdXNTZXJ2aWNlLmp3dEhlYWRlcikpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKGVycm9yRXZlbnQgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChlcnJvckV2ZW50IGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UgJiYgZXJyb3JFdmVudC5zdGF0dXMgPT09IDQwMSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmRlYnVnKCdBdXRoZW50aWNhdGlvbiB0b2tlbiBpcyBpbnZhbGlkLiBDbGVhcmluZyBzZXNzaW9uIHRva2VuJyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2Fub255bW91c1NlcnZpY2UucmVtb3ZlVG9rZW4oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3JFdmVudCk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==