bc-adal-angular
Version:
Library wrapper for Angular 6+, development over Microsoft ADAL (Azure Active Directory Authentication Library) - [https://github.com/AzureAD/azure-activedirectory-library-for-js](https://github.com/AzureAD/azure-activedirectory-library-for-js) that helps
55 lines • 5.3 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Injectable } from '@angular/core';
import { mergeMap } from 'rxjs/internal/operators/mergeMap';
import { BcAdalAngularService } from './bc-adal-angular.service';
export class BcAdalAngularInterceptor {
/**
* @param {?} adalService
*/
constructor(adalService) {
this.adalService = adalService;
}
/**
* @param {?} request
* @param {?} next
* @return {?}
*/
intercept(request, next) {
/** @type {?} */
const resource = this.adalService.getOptions()['resource'] ||
this.adalService.getResourceForEndpoint(request.url);
if (!resource) {
return next.handle(request);
}
if (!this.adalService.isAuthenticated) {
throw new Error('Cannot send request to registered endpoint if the user is not authenticated.');
}
return this.adalService.acquireTokenResilient(resource).pipe(mergeMap((token) => {
if (!token) {
return next.handle(request);
}
/** @type {?} */
const requestWithAuthorization = request.clone({
headers: request.headers.set('Authorization', 'Bearer ' + token)
});
return next.handle(requestWithAuthorization);
}));
}
}
BcAdalAngularInterceptor.decorators = [
{ type: Injectable }
];
BcAdalAngularInterceptor.ctorParameters = () => [
{ type: BcAdalAngularService }
];
if (false) {
/**
* @type {?}
* @private
*/
BcAdalAngularInterceptor.prototype.adalService;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmMtYWRhbC1hbmd1bGFyLmludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYmMtYWRhbC1hbmd1bGFyLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL2JjLWFkYWwtYW5ndWxhci5pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBTUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFNUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFHakUsTUFBTTs7OztJQUNKLFlBQW9CLFdBQWlDO1FBQWpDLGdCQUFXLEdBQVgsV0FBVyxDQUFzQjtJQUFHLENBQUM7Ozs7OztJQUV6RCxTQUFTLENBQ1AsT0FBeUIsRUFDekIsSUFBaUI7O2NBRVgsUUFBUSxHQUNaLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLENBQUMsVUFBVSxDQUFDO1lBQ3pDLElBQUksQ0FBQyxXQUFXLENBQUMsc0JBQXNCLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztRQUV0RCxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzdCO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxFQUFFO1lBQ3JDLE1BQU0sSUFBSSxLQUFLLENBQ2IsOEVBQThFLENBQy9FLENBQUM7U0FDSDtRQUVELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQzFELFFBQVEsQ0FBQyxDQUFDLEtBQWEsRUFBRSxFQUFFO1lBQ3pCLElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQ1YsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQzdCOztrQkFFSyx3QkFBd0IsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO2dCQUM3QyxPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLFNBQVMsR0FBRyxLQUFLLENBQUM7YUFDakUsQ0FBQztZQUVGLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQy9DLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDOzs7WUFuQ0YsVUFBVTs7O1lBRkYsb0JBQW9COzs7Ozs7O0lBSWYsK0NBQXlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBIdHRwRXZlbnQsXHJcbiAgSHR0cEhhbmRsZXIsXHJcbiAgSHR0cEludGVyY2VwdG9yLFxyXG4gIEh0dHBSZXF1ZXN0XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWVyZ2VNYXAgfSBmcm9tICdyeGpzL2ludGVybmFsL29wZXJhdG9ycy9tZXJnZU1hcCc7XHJcblxyXG5pbXBvcnQgeyBCY0FkYWxBbmd1bGFyU2VydmljZSB9IGZyb20gJy4vYmMtYWRhbC1hbmd1bGFyLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQmNBZGFsQW5ndWxhckludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yIHtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFkYWxTZXJ2aWNlOiBCY0FkYWxBbmd1bGFyU2VydmljZSkge31cclxuXHJcbiAgaW50ZXJjZXB0KFxyXG4gICAgcmVxdWVzdDogSHR0cFJlcXVlc3Q8YW55PixcclxuICAgIG5leHQ6IEh0dHBIYW5kbGVyXHJcbiAgKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj4ge1xyXG4gICAgY29uc3QgcmVzb3VyY2UgPVxyXG4gICAgICB0aGlzLmFkYWxTZXJ2aWNlLmdldE9wdGlvbnMoKVsncmVzb3VyY2UnXSB8fFxyXG4gICAgICB0aGlzLmFkYWxTZXJ2aWNlLmdldFJlc291cmNlRm9yRW5kcG9pbnQocmVxdWVzdC51cmwpO1xyXG5cclxuICAgIGlmICghcmVzb3VyY2UpIHtcclxuICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcXVlc3QpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghdGhpcy5hZGFsU2VydmljZS5pc0F1dGhlbnRpY2F0ZWQpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFxyXG4gICAgICAgICdDYW5ub3Qgc2VuZCByZXF1ZXN0IHRvIHJlZ2lzdGVyZWQgZW5kcG9pbnQgaWYgdGhlIHVzZXIgaXMgbm90IGF1dGhlbnRpY2F0ZWQuJ1xyXG4gICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmFkYWxTZXJ2aWNlLmFjcXVpcmVUb2tlblJlc2lsaWVudChyZXNvdXJjZSkucGlwZShcclxuICAgICAgbWVyZ2VNYXAoKHRva2VuOiBzdHJpbmcpID0+IHtcclxuICAgICAgICBpZiAoIXRva2VuKSB7XHJcbiAgICAgICAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxdWVzdCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCByZXF1ZXN0V2l0aEF1dGhvcml6YXRpb24gPSByZXF1ZXN0LmNsb25lKHtcclxuICAgICAgICAgIGhlYWRlcnM6IHJlcXVlc3QuaGVhZGVycy5zZXQoJ0F1dGhvcml6YXRpb24nLCAnQmVhcmVyICcgKyB0b2tlbilcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcXVlc3RXaXRoQXV0aG9yaXphdGlvbik7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxufVxyXG4iXX0=