UNPKG

@fingerprintsoft/angular-spring-hal

Version:

This Angular module offers a HAL/JSON http-client to easily interact with a Spring Data Rest API or any API that implements the Spring Data Rest resource model

33 lines 4.63 kB
import { Inject, Injectable } from "@angular/core"; import { HttpHeaders } from "@angular/common/http"; import { TokenConfigService } from "./TokenConfigService"; import { Auth } from "./Auth"; import * as i0 from "@angular/core"; export class AuthInterceptor { constructor(config) { this.config = config; } intercept(request, next) { // add authorization header with jwt token if available if (this.config) { const token = Object.assign(Auth, JSON.parse(sessionStorage.getItem(this.config.token))); if (token && !request.url.endsWith('oauth/token')) { const headers = new HttpHeaders({ 'Authorization': 'Bearer ' + token.access_token, 'Content-Type': 'application/json' }); request = request.clone({ headers }); } } return next.handle(request); } } AuthInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: AuthInterceptor, deps: [{ token: TokenConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); AuthInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: AuthInterceptor }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: AuthInterceptor, decorators: [{ type: Injectable }], ctorParameters: function () { return [{ type: undefined, decorators: [{ type: Inject, args: [TokenConfigService] }] }]; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXV0aEludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZmluZ2VycHJpbnRzb2Z0L2FuZ3VsYXItc3ByaW5nLWhhbC9zcmMvbGliL2ludGVyY2VwdG9yL0F1dGhJbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQXlCLFdBQVcsRUFBK0IsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUV4RCxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sUUFBUSxDQUFDOztBQUc1QixNQUFNLE9BQU8sZUFBZTtJQUV4QixZQUFnRCxNQUFNO1FBQU4sV0FBTSxHQUFOLE1BQU0sQ0FBQTtJQUFHLENBQUM7SUFFMUQsU0FBUyxDQUFDLE9BQXlCLEVBQUUsSUFBaUI7UUFDbEQsdURBQXVEO1FBQ3ZELElBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNaLE1BQU0sS0FBSyxHQUFTLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNoRyxJQUFJLEtBQUssSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxFQUFFO2dCQUMvQyxNQUFNLE9BQU8sR0FBRyxJQUFJLFdBQVcsQ0FBQztvQkFDNUIsZUFBZSxFQUFFLFNBQVMsR0FBRyxLQUFLLENBQUMsWUFBWTtvQkFDL0MsY0FBYyxFQUFFLGtCQUFrQjtpQkFDckMsQ0FBQyxDQUFDO2dCQUNILE9BQU8sR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUMsT0FBTyxFQUFDLENBQUMsQ0FBQzthQUN0QztTQUNKO1FBRUQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7OzRHQWxCUSxlQUFlLGtCQUVKLGtCQUFrQjtnSEFGN0IsZUFBZTsyRkFBZixlQUFlO2tCQUQzQixVQUFVOzswQkFHTSxNQUFNOzJCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtIdHRwRXZlbnQsIEh0dHBIYW5kbGVyLCBIdHRwSGVhZGVycywgSHR0cEludGVyY2VwdG9yLCBIdHRwUmVxdWVzdH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XG5pbXBvcnQge1Rva2VuQ29uZmlnU2VydmljZX0gZnJvbSBcIi4vVG9rZW5Db25maWdTZXJ2aWNlXCI7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQge0F1dGh9IGZyb20gXCIuL0F1dGhcIjtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEF1dGhJbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XG5cbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KFRva2VuQ29uZmlnU2VydmljZSkgcHJpdmF0ZSBjb25maWcpIHt9XG5cbiAgICBpbnRlcmNlcHQocmVxdWVzdDogSHR0cFJlcXVlc3Q8YW55PiwgbmV4dDogSHR0cEhhbmRsZXIpOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxhbnk+PiB7XG4gICAgICAgIC8vIGFkZCBhdXRob3JpemF0aW9uIGhlYWRlciB3aXRoIGp3dCB0b2tlbiBpZiBhdmFpbGFibGVcbiAgICAgICAgaWYodGhpcy5jb25maWcpIHtcbiAgICAgICAgICAgIGNvbnN0IHRva2VuOiBBdXRoID0gT2JqZWN0LmFzc2lnbihBdXRoICwgSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuY29uZmlnLnRva2VuKSkpO1xuICAgICAgICAgICAgaWYgKHRva2VuICYmICFyZXF1ZXN0LnVybC5lbmRzV2l0aCgnb2F1dGgvdG9rZW4nKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoe1xuICAgICAgICAgICAgICAgICAgICAnQXV0aG9yaXphdGlvbic6ICdCZWFyZXIgJyArIHRva2VuLmFjY2Vzc190b2tlbixcbiAgICAgICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJlcXVlc3QgPSByZXF1ZXN0LmNsb25lKHtoZWFkZXJzfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxdWVzdCk7XG4gICAgfVxufVxuXG5cbiJdfQ==