adal-angular-custom
Version:
Angular 4+ ADAL Wrapper With Custom Extensions
46 lines • 2.32 kB
JavaScript
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