UNPKG

adal-angular4

Version:
42 lines 5.63 kB
import { __decorate } from "tslib"; import { Injectable } from '@angular/core'; import { AdalService } from './adal.service'; import { mergeMap } from 'rxjs/operators'; var AdalInterceptor = /** @class */ (function () { function AdalInterceptor(service) { this.service = service; } AdalInterceptor.prototype.intercept = function (request, next) { // if the endpoint is not registered // or if the header 'skip-adal' is set // then pass the request as it is to the next handler var resource = this.service.getResourceForEndpoint(request.url); var skipAdal = request.headers.get('skip-adal'); if (!resource || skipAdal) { return next.handle(request); } // if the user is not authenticated then drop the request if (!this.service.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.service.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.ctorParameters = function () { return [ { type: AdalService } ]; }; AdalInterceptor = __decorate([ Injectable() ], AdalInterceptor); return AdalInterceptor; }()); export { AdalInterceptor }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhbC5pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FkYWwtYW5ndWxhcjQvIiwic291cmNlcyI6WyJsaWIvYWRhbC5pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVEzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzFDO0lBRUUseUJBQW9CLE9BQW9CO1FBQXBCLFlBQU8sR0FBUCxPQUFPLENBQWE7SUFBSSxDQUFDO0lBRTdDLG1DQUFTLEdBQVQsVUFBVSxPQUE2QixFQUFFLElBQWlCO1FBRXhELG9DQUFvQztRQUNwQyxzQ0FBc0M7UUFDdEMscURBQXFEO1FBQ3JELElBQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsc0JBQXNCLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRWxFLElBQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRWxELElBQUksQ0FBQyxRQUFRLElBQUksUUFBUSxFQUFFO1lBRXpCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUM3QjtRQUVELHlEQUF5RDtRQUN6RCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFO1lBRXhDLE1BQU0sSUFBSSxLQUFLLENBQUMsOEVBQThFLENBQUMsQ0FBQztTQUNqRztRQUVELDhEQUE4RDtRQUM5RCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQzthQUN2QyxJQUFJLENBQ0gsUUFBUSxDQUFDLFVBQUMsS0FBYTtZQUNyQiwwREFBMEQ7WUFDMUQsaURBQWlEO1lBQ2pELElBQU0saUJBQWlCLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztnQkFDdEMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxTQUFTLEdBQUcsS0FBSyxDQUFDO2FBQ2pFLENBQUMsQ0FBQztZQUVILE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3hDLENBQUMsQ0FDQSxDQUNGLENBQUM7SUFDTixDQUFDOztnQkFwQzRCLFdBQVc7O0lBRjdCLGVBQWU7UUFEM0IsVUFBVSxFQUFFO09BQ0EsZUFBZSxDQXVDM0I7SUFBRCxzQkFBQztDQUFBLEFBdkNELElBdUNDO1NBdkNZLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBIdHRwUmVxdWVzdCxcbiAgSHR0cEhhbmRsZXIsXG4gIEh0dHBFdmVudCxcbiAgSHR0cEludGVyY2VwdG9yXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFkYWxTZXJ2aWNlIH0gZnJvbSAnLi9hZGFsLnNlcnZpY2UnO1xuaW1wb3J0IHsgbWVyZ2VNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBZGFsSW50ZXJjZXB0b3IgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3Ige1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2VydmljZTogQWRhbFNlcnZpY2UpIHsgfVxuXG4gIGludGVyY2VwdChyZXF1ZXN0OiBIdHRwUmVxdWVzdDx1bmtub3duPiwgbmV4dDogSHR0cEhhbmRsZXIpOiBPYnNlcnZhYmxlPEh0dHBFdmVudDx1bmtub3duPj4ge1xuXG4gICAgLy8gaWYgdGhlIGVuZHBvaW50IGlzIG5vdCByZWdpc3RlcmVkXG4gICAgLy8gb3IgaWYgdGhlIGhlYWRlciAnc2tpcC1hZGFsJyBpcyBzZXRcbiAgICAvLyB0aGVuIHBhc3MgdGhlIHJlcXVlc3QgYXMgaXQgaXMgdG8gdGhlIG5leHQgaGFuZGxlclxuICAgIGNvbnN0IHJlc291cmNlID0gdGhpcy5zZXJ2aWNlLmdldFJlc291cmNlRm9yRW5kcG9pbnQocmVxdWVzdC51cmwpO1xuXG4gICAgY29uc3Qgc2tpcEFkYWwgPSByZXF1ZXN0LmhlYWRlcnMuZ2V0KCdza2lwLWFkYWwnKTtcblxuICAgIGlmICghcmVzb3VyY2UgfHwgc2tpcEFkYWwpIHtcblxuICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcXVlc3QpO1xuICAgIH1cblxuICAgIC8vIGlmIHRoZSB1c2VyIGlzIG5vdCBhdXRoZW50aWNhdGVkIHRoZW4gZHJvcCB0aGUgcmVxdWVzdFxuICAgIGlmICghdGhpcy5zZXJ2aWNlLnVzZXJJbmZvLmF1dGhlbnRpY2F0ZWQpIHtcblxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3Qgc2VuZCByZXF1ZXN0IHRvIHJlZ2lzdGVyZWQgZW5kcG9pbnQgaWYgdGhlIHVzZXIgaXMgbm90IGF1dGhlbnRpY2F0ZWQuJyk7XG4gICAgfVxuXG4gICAgLy8gaWYgdGhlIGVuZHBvaW50IGlzIHJlZ2lzdGVyZWQgdGhlbiBhY3F1aXJlIGFuZCBpbmplY3QgdG9rZW5cbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlLmFjcXVpcmVUb2tlbihyZXNvdXJjZSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtZXJnZU1hcCgodG9rZW46IHN0cmluZykgPT4ge1xuICAgICAgICAgIC8vIGNsb25lIHRoZSByZXF1ZXN0IGFuZCByZXBsYWNlIHRoZSBvcmlnaW5hbCBoZWFkZXJzIHdpdGhcbiAgICAgICAgICAvLyBjbG9uZWQgaGVhZGVycywgdXBkYXRlZCB3aXRoIHRoZSBhdXRob3JpemF0aW9uXG4gICAgICAgICAgY29uc3QgYXV0aG9yaXplZFJlcXVlc3QgPSByZXF1ZXN0LmNsb25lKHtcbiAgICAgICAgICAgIGhlYWRlcnM6IHJlcXVlc3QuaGVhZGVycy5zZXQoJ0F1dGhvcml6YXRpb24nLCAnQmVhcmVyICcgKyB0b2tlbiksXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICByZXR1cm4gbmV4dC5oYW5kbGUoYXV0aG9yaXplZFJlcXVlc3QpO1xuICAgICAgICB9XG4gICAgICAgIClcbiAgICAgICk7XG4gIH1cbn1cbiJdfQ==