UNPKG

adal-angular-custom

Version:

Angular 4+ ADAL Wrapper With Custom Extensions

46 lines 2.32 kB
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; import { Injectable } from '@angular/core'; import { mergeMap } from 'rxjs/operators'; import { AdalService } from './adal.service'; var AdalInterceptor = /** @class */ (function () { function AdalInterceptor(adal) { this.adal = adal; } AdalInterceptor.prototype.intercept = function (request, next) { // if the endpoint is not registered then pass // the request as it is to the next handler var resource = this.adal.getResourceForEndpoint(request.url); if (!resource) { return next.handle(request); } // if the user is not authenticated then drop the request if (!this.adal.userInfo.authenticated) { throw new Error('Cannot send request to registered endpoint if the user is not authenticated.'); } // if the endpoint is registered then acquire and inject token return this.adal.acquireToken(resource) .pipe(mergeMap(function (token) { // clone the request and replace the original headers with // cloned headers, updated with the authorization var authorizedRequest = request.clone({ headers: request.headers.set('Authorization', 'Bearer ' + token), }); return next.handle(authorizedRequest); })); }; AdalInterceptor = __decorate([ Injectable(), __metadata("design:paramtypes", [AdalService]) ], AdalInterceptor); return AdalInterceptor; }()); export { AdalInterceptor }; //# sourceMappingURL=adal.interceptor.js.map