UNPKG

adal-angular4

Version:
41 lines 5.51 kB
import { __decorate } from "tslib"; import { Injectable } from '@angular/core'; import { AdalService } from './adal.service'; import { mergeMap } from 'rxjs/operators'; let AdalInterceptor = class AdalInterceptor { constructor(service) { this.service = service; } intercept(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 const resource = this.service.getResourceForEndpoint(request.url); const 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((token) => { // clone the request and replace the original headers with // cloned headers, updated with the authorization const authorizedRequest = request.clone({ headers: request.headers.set('Authorization', 'Bearer ' + token), }); return next.handle(authorizedRequest); })); } }; AdalInterceptor.ctorParameters = () => [ { type: AdalService } ]; AdalInterceptor = __decorate([ Injectable() ], AdalInterceptor); export { AdalInterceptor }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhbC5pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FkYWwtYW5ndWxhcjQvIiwic291cmNlcyI6WyJsaWIvYWRhbC5pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVEzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzFDLElBQWEsZUFBZSxHQUE1QixNQUFhLGVBQWU7SUFFMUIsWUFBb0IsT0FBb0I7UUFBcEIsWUFBTyxHQUFQLE9BQU8sQ0FBYTtJQUFJLENBQUM7SUFFN0MsU0FBUyxDQUFDLE9BQTZCLEVBQUUsSUFBaUI7UUFFeEQsb0NBQW9DO1FBQ3BDLHNDQUFzQztRQUN0QyxxREFBcUQ7UUFDckQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFbEUsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFbEQsSUFBSSxDQUFDLFFBQVEsSUFBSSxRQUFRLEVBQUU7WUFFekIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzdCO1FBRUQseURBQXlEO1FBQ3pELElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUU7WUFFeEMsTUFBTSxJQUFJLEtBQUssQ0FBQyw4RUFBOEUsQ0FBQyxDQUFDO1NBQ2pHO1FBRUQsOERBQThEO1FBQzlELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDO2FBQ3ZDLElBQUksQ0FDSCxRQUFRLENBQUMsQ0FBQyxLQUFhLEVBQUUsRUFBRTtZQUN6QiwwREFBMEQ7WUFDMUQsaURBQWlEO1lBQ2pELE1BQU0saUJBQWlCLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztnQkFDdEMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxTQUFTLEdBQUcsS0FBSyxDQUFDO2FBQ2pFLENBQUMsQ0FBQztZQUVILE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3hDLENBQUMsQ0FDQSxDQUNGLENBQUM7SUFDTixDQUFDO0NBQ0YsQ0FBQTs7WUFyQzhCLFdBQVc7O0FBRjdCLGVBQWU7SUFEM0IsVUFBVSxFQUFFO0dBQ0EsZUFBZSxDQXVDM0I7U0F2Q1ksZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEh0dHBSZXF1ZXN0LFxuICBIdHRwSGFuZGxlcixcbiAgSHR0cEV2ZW50LFxuICBIdHRwSW50ZXJjZXB0b3Jcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQWRhbFNlcnZpY2UgfSBmcm9tICcuL2FkYWwuc2VydmljZSc7XG5pbXBvcnQgeyBtZXJnZU1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFkYWxJbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzZXJ2aWNlOiBBZGFsU2VydmljZSkgeyB9XG5cbiAgaW50ZXJjZXB0KHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PHVua25vd24+LCBuZXh0OiBIdHRwSGFuZGxlcik6IE9ic2VydmFibGU8SHR0cEV2ZW50PHVua25vd24+PiB7XG5cbiAgICAvLyBpZiB0aGUgZW5kcG9pbnQgaXMgbm90IHJlZ2lzdGVyZWRcbiAgICAvLyBvciBpZiB0aGUgaGVhZGVyICdza2lwLWFkYWwnIGlzIHNldFxuICAgIC8vIHRoZW4gcGFzcyB0aGUgcmVxdWVzdCBhcyBpdCBpcyB0byB0aGUgbmV4dCBoYW5kbGVyXG4gICAgY29uc3QgcmVzb3VyY2UgPSB0aGlzLnNlcnZpY2UuZ2V0UmVzb3VyY2VGb3JFbmRwb2ludChyZXF1ZXN0LnVybCk7XG5cbiAgICBjb25zdCBza2lwQWRhbCA9IHJlcXVlc3QuaGVhZGVycy5nZXQoJ3NraXAtYWRhbCcpO1xuXG4gICAgaWYgKCFyZXNvdXJjZSB8fCBza2lwQWRhbCkge1xuXG4gICAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxdWVzdCk7XG4gICAgfVxuXG4gICAgLy8gaWYgdGhlIHVzZXIgaXMgbm90IGF1dGhlbnRpY2F0ZWQgdGhlbiBkcm9wIHRoZSByZXF1ZXN0XG4gICAgaWYgKCF0aGlzLnNlcnZpY2UudXNlckluZm8uYXV0aGVudGljYXRlZCkge1xuXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBzZW5kIHJlcXVlc3QgdG8gcmVnaXN0ZXJlZCBlbmRwb2ludCBpZiB0aGUgdXNlciBpcyBub3QgYXV0aGVudGljYXRlZC4nKTtcbiAgICB9XG5cbiAgICAvLyBpZiB0aGUgZW5kcG9pbnQgaXMgcmVnaXN0ZXJlZCB0aGVuIGFjcXVpcmUgYW5kIGluamVjdCB0b2tlblxuICAgIHJldHVybiB0aGlzLnNlcnZpY2UuYWNxdWlyZVRva2VuKHJlc291cmNlKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1lcmdlTWFwKCh0b2tlbjogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgLy8gY2xvbmUgdGhlIHJlcXVlc3QgYW5kIHJlcGxhY2UgdGhlIG9yaWdpbmFsIGhlYWRlcnMgd2l0aFxuICAgICAgICAgIC8vIGNsb25lZCBoZWFkZXJzLCB1cGRhdGVkIHdpdGggdGhlIGF1dGhvcml6YXRpb25cbiAgICAgICAgICBjb25zdCBhdXRob3JpemVkUmVxdWVzdCA9IHJlcXVlc3QuY2xvbmUoe1xuICAgICAgICAgICAgaGVhZGVyczogcmVxdWVzdC5oZWFkZXJzLnNldCgnQXV0aG9yaXphdGlvbicsICdCZWFyZXIgJyArIHRva2VuKSxcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHJldHVybiBuZXh0LmhhbmRsZShhdXRob3JpemVkUmVxdWVzdCk7XG4gICAgICAgIH1cbiAgICAgICAgKVxuICAgICAgKTtcbiAgfVxufVxuIl19