diff --git a/frontend/src/ts/modules/webbpm/interceptor/absolute-url-csrf.interceptor.ts b/frontend/src/ts/modules/webbpm/interceptor/absolute-url-csrf.interceptor.ts index ea23188..1a523cb 100644 --- a/frontend/src/ts/modules/webbpm/interceptor/absolute-url-csrf.interceptor.ts +++ b/frontend/src/ts/modules/webbpm/interceptor/absolute-url-csrf.interceptor.ts @@ -1,23 +1,27 @@ -import {HttpEvent, HttpHandler, HttpInterceptor, HttpRequest} from '@angular/common/http'; +import { + HttpEvent, + HttpHandler, + HttpInterceptor, + HttpRequest, + HttpXsrfTokenExtractor +} from '@angular/common/http'; import {Injectable} from '@angular/core'; import {Observable} from 'rxjs'; -import {CookieService} from "ngx-cookie"; import {TokenConstants} from "../../security/TokenConstants"; @Injectable() export class AbsoluteUrlCsrfInterceptor implements HttpInterceptor { - constructor(private cookieService: CookieService) { + constructor(private extractor: HttpXsrfTokenExtractor) { } intercept(req: HttpRequest, next: HttpHandler): Observable> { let requestToForward = req; - let token = this.cookieService.get(TokenConstants.CSRF_TOKEN_NAME) as string; - - if (token != null) { + let token = this.extractor.getToken(); + let headerName = TokenConstants.CSRF_HEADER_NAME; + if (token != null && !req.headers.has(headerName)) { let headers = {}; - let headerName = TokenConstants.CSRF_HEADER_NAME; headers[headerName] = token; requestToForward = req.clone({setHeaders: headers}); }