ngx-adal-8
Version:
Angular 2+ ADAL Wrapper library
61 lines • 4.88 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Injectable } from '@angular/core';
import { mergeMap } from 'rxjs/operators';
import { NgxAdalService } from './ngx-adal.service';
export class NgxAdalInterceptor {
/**
* @param {?} adal
*/
constructor(adal) {
this.adal = adal;
}
/**
* @param {?} request
* @param {?} next
* @return {?}
*/
intercept(request, next) {
// retrieve resource from endpoints configuration
/** @type {?} */
const resource = this.adal.GetResourceForEndpoint(request.url);
if (!resource) {
return next.handle(request);
}
if (!this.adal.isAuthenticated) {
this.adal.RenewToken(request.url);
}
return this.adal.acquireToken(request.url).pipe(mergeMap((/**
* @param {?} token
* @return {?}
*/
(token) => {
/** @type {?} */
const authorizedRequest = request.clone({
setHeaders: {
Authorization: 'Bearer ' + token,
'content-Type': 'application/json; charset=utf-8',
Accept: 'application/json'
}
});
return next.handle(authorizedRequest);
})));
}
}
NgxAdalInterceptor.decorators = [
{ type: Injectable }
];
/** @nocollapse */
NgxAdalInterceptor.ctorParameters = () => [
{ type: NgxAdalService }
];
if (false) {
/**
* @type {?}
* @private
*/
NgxAdalInterceptor.prototype.adal;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWFkYWwuaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtYWRhbC04LyIsInNvdXJjZXMiOlsibGliL25neC1hZGFsLmludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHcEQsTUFBTSxPQUFPLGtCQUFrQjs7OztJQUM3QixZQUFvQixJQUFvQjtRQUFwQixTQUFJLEdBQUosSUFBSSxDQUFnQjtJQUFHLENBQUM7Ozs7OztJQUU1QyxTQUFTLENBQUMsT0FBeUIsRUFBRSxJQUFpQjs7O2NBRTlDLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7UUFDOUQsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNiLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUM3QjtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDbkM7UUFFRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQzdDLFFBQVE7Ozs7UUFBQyxDQUFDLEtBQWEsRUFBRSxFQUFFOztrQkFDbkIsaUJBQWlCLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztnQkFDdEMsVUFBVSxFQUFFO29CQUNWLGFBQWEsRUFBRSxTQUFTLEdBQUcsS0FBSztvQkFDaEMsY0FBYyxFQUFFLGlDQUFpQztvQkFDakQsTUFBTSxFQUFFLGtCQUFrQjtpQkFDM0I7YUFDRixDQUFDO1lBQ0YsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDeEMsQ0FBQyxFQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7OztZQTFCRixVQUFVOzs7O1lBRkYsY0FBYzs7Ozs7OztJQUlULGtDQUE0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cEV2ZW50LCBIdHRwSW50ZXJjZXB0b3IsIEh0dHBIYW5kbGVyLCBIdHRwUmVxdWVzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtZXJnZU1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgTmd4QWRhbFNlcnZpY2UgfSBmcm9tICcuL25neC1hZGFsLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgTmd4QWRhbEludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yIHtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFkYWw6IE5neEFkYWxTZXJ2aWNlKSB7fVxyXG5cclxuICBpbnRlcmNlcHQocmVxdWVzdDogSHR0cFJlcXVlc3Q8YW55PiwgbmV4dDogSHR0cEhhbmRsZXIpOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxhbnk+PiB7XHJcbiAgICAvLyByZXRyaWV2ZSByZXNvdXJjZSBmcm9tIGVuZHBvaW50cyBjb25maWd1cmF0aW9uXHJcbiAgICBjb25zdCByZXNvdXJjZSA9IHRoaXMuYWRhbC5HZXRSZXNvdXJjZUZvckVuZHBvaW50KHJlcXVlc3QudXJsKTtcclxuICAgIGlmICghcmVzb3VyY2UpIHtcclxuICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcXVlc3QpO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLmFkYWwuaXNBdXRoZW50aWNhdGVkKSB7XHJcbiAgICAgIHRoaXMuYWRhbC5SZW5ld1Rva2VuKHJlcXVlc3QudXJsKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5hZGFsLmFjcXVpcmVUb2tlbihyZXF1ZXN0LnVybCkucGlwZShcclxuICAgICAgbWVyZ2VNYXAoKHRva2VuOiBzdHJpbmcpID0+IHtcclxuICAgICAgICBjb25zdCBhdXRob3JpemVkUmVxdWVzdCA9IHJlcXVlc3QuY2xvbmUoe1xyXG4gICAgICAgICAgc2V0SGVhZGVyczoge1xyXG4gICAgICAgICAgICBBdXRob3JpemF0aW9uOiAnQmVhcmVyICcgKyB0b2tlbixcclxuICAgICAgICAgICAgJ2NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PXV0Zi04JyxcclxuICAgICAgICAgICAgQWNjZXB0OiAnYXBwbGljYXRpb24vanNvbidcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gbmV4dC5oYW5kbGUoYXV0aG9yaXplZFJlcXVlc3QpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIl19