ngx-gem-spaas
Version:
This library contains services, components, images and styles to provide a unified look and way-of-working throughout GEM SPaaS.
48 lines • 6.5 kB
JavaScript
import { Inject, Injectable } from '@angular/core';
import { SpaasConfigModel } from "../_models/config.model";
import * as i0 from "@angular/core";
import * as i1 from "../_services/okta.service";
import * as i2 from "../_models/config.model";
export class OktaAuthInterceptor {
static checkUrlsToIntercept(urlsToIntercept, url) {
for (const curUrl of urlsToIntercept) {
if (url.startsWith(curUrl)) {
return true;
}
}
return false;
}
constructor(spaasConfig, oktaService) {
this.spaasConfig = spaasConfig;
this.oktaService = oktaService;
}
intercept(req, next) {
let headers = req.headers;
if (req.method !== 'GET') {
headers = headers.set('Content-type', 'application/json');
}
if (req.url.startsWith(this.spaasConfig.oktaConfig.url) ||
OktaAuthInterceptor.checkUrlsToIntercept(this.spaasConfig.oktaConfig.interceptUrls, req.url)) {
const token = this.oktaService.getCachedAccessToken();
headers = headers.set('Authorization', `Bearer ${token}`);
const authRequest = req.clone({ headers: headers });
return next.handle(authRequest);
}
else {
const authRequest = req.clone();
return next.handle(authRequest);
}
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OktaAuthInterceptor, deps: [{ token: SpaasConfigModel }, { token: i1.OktaService }], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OktaAuthInterceptor, providedIn: 'root' }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OktaAuthInterceptor, decorators: [{
type: Injectable,
args: [{
providedIn: 'root'
}]
}], ctorParameters: () => [{ type: i2.SpaasConfigModel, decorators: [{
type: Inject,
args: [SpaasConfigModel]
}] }, { type: i1.OktaService }] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2t0YS1hdXRoLmludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWdlbS1zcGFhcy9zcmMvX2ludGVyY2VwdG9ycy9va3RhLWF1dGguaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFakQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0seUJBQXlCLENBQUM7Ozs7QUFLekQsTUFBTSxPQUFPLG1CQUFtQjtJQUV0QixNQUFNLENBQUMsb0JBQW9CLENBQUMsZUFBeUIsRUFBRSxHQUFXO1FBQ3hFLEtBQUssTUFBTSxNQUFNLElBQUksZUFBZSxFQUFFLENBQUM7WUFDckMsSUFBSSxHQUFHLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7Z0JBQzNCLE9BQU8sSUFBSSxDQUFDO1lBQ2QsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxZQUM2QyxXQUE2QixFQUNoRSxXQUF3QjtRQURXLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtRQUNoRSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtJQUVsQyxDQUFDO0lBRUQsU0FBUyxDQUFDLEdBQXFCLEVBQUUsSUFBaUI7UUFFaEQsSUFBSSxPQUFPLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQztRQUMxQixJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDekIsT0FBTyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLGtCQUFrQixDQUFDLENBQUM7UUFDNUQsQ0FBQztRQUVELElBQ0UsR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDO1lBQ25ELG1CQUFtQixDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQzVGLENBQUM7WUFFRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDdEQsT0FBTyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLFVBQVUsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUMxRCxNQUFNLFdBQVcsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUMsT0FBTyxFQUFFLE9BQU8sRUFBQyxDQUFDLENBQUM7WUFDbEQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRWxDLENBQUM7YUFBTSxDQUFDO1lBRU4sTUFBTSxXQUFXLEdBQUcsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2hDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUVsQyxDQUFDO0lBQ0gsQ0FBQzsrR0F4Q1UsbUJBQW1CLGtCQVlwQixnQkFBZ0I7bUhBWmYsbUJBQW1CLGNBRmxCLE1BQU07OzRGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQWFJLE1BQU07MkJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtIdHRwRXZlbnQsIEh0dHBIYW5kbGVyLCBIdHRwSW50ZXJjZXB0b3IsIEh0dHBSZXF1ZXN0fSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtPa3RhU2VydmljZX0gZnJvbSBcIi4uL19zZXJ2aWNlcy9va3RhLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtTcGFhc0NvbmZpZ01vZGVsfSBmcm9tIFwiLi4vX21vZGVscy9jb25maWcubW9kZWxcIjtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIE9rdGFBdXRoSW50ZXJjZXB0b3IgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3Ige1xyXG5cclxuICBwcml2YXRlIHN0YXRpYyBjaGVja1VybHNUb0ludGVyY2VwdCh1cmxzVG9JbnRlcmNlcHQ6IHN0cmluZ1tdLCB1cmw6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgZm9yIChjb25zdCBjdXJVcmwgb2YgdXJsc1RvSW50ZXJjZXB0KSB7XHJcbiAgICAgIGlmICh1cmwuc3RhcnRzV2l0aChjdXJVcmwpKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEluamVjdChTcGFhc0NvbmZpZ01vZGVsKSBwcml2YXRlIHJlYWRvbmx5IHNwYWFzQ29uZmlnOiBTcGFhc0NvbmZpZ01vZGVsLFxyXG4gICAgcHJpdmF0ZSBva3RhU2VydmljZTogT2t0YVNlcnZpY2UsXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBpbnRlcmNlcHQocmVxOiBIdHRwUmVxdWVzdDxhbnk+LCBuZXh0OiBIdHRwSGFuZGxlcik6IE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4+IHtcclxuXHJcbiAgICBsZXQgaGVhZGVycyA9IHJlcS5oZWFkZXJzO1xyXG4gICAgaWYgKHJlcS5tZXRob2QgIT09ICdHRVQnKSB7XHJcbiAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQ29udGVudC10eXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIHJlcS51cmwuc3RhcnRzV2l0aCh0aGlzLnNwYWFzQ29uZmlnLm9rdGFDb25maWcudXJsKSB8fFxyXG4gICAgICBPa3RhQXV0aEludGVyY2VwdG9yLmNoZWNrVXJsc1RvSW50ZXJjZXB0KHRoaXMuc3BhYXNDb25maWcub2t0YUNvbmZpZy5pbnRlcmNlcHRVcmxzLCByZXEudXJsKVxyXG4gICAgKSB7XHJcblxyXG4gICAgICBjb25zdCB0b2tlbiA9IHRoaXMub2t0YVNlcnZpY2UuZ2V0Q2FjaGVkQWNjZXNzVG9rZW4oKTtcclxuICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdBdXRob3JpemF0aW9uJywgYEJlYXJlciAke3Rva2VufWApO1xyXG4gICAgICBjb25zdCBhdXRoUmVxdWVzdCA9IHJlcS5jbG9uZSh7aGVhZGVyczogaGVhZGVyc30pO1xyXG4gICAgICByZXR1cm4gbmV4dC5oYW5kbGUoYXV0aFJlcXVlc3QpO1xyXG5cclxuICAgIH0gZWxzZSB7XHJcblxyXG4gICAgICBjb25zdCBhdXRoUmVxdWVzdCA9IHJlcS5jbG9uZSgpO1xyXG4gICAgICByZXR1cm4gbmV4dC5oYW5kbGUoYXV0aFJlcXVlc3QpO1xyXG5cclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiJdfQ==