From c97140ca11335db9b856c44044c9f5a07f74145a Mon Sep 17 00:00:00 2001 From: statta Date: Tue, 31 Mar 2020 15:36:48 -0400 Subject: [PATCH] POST calls failing due to CXRF Issue-ID: PORTAL-870 Change-Id: Ia3fe5b27278d029a96a3e20ec62cfecb1b92a52b Signed-off-by: statta --- .../app/shared/interceptors/header-interceptor.ts | 7 ++++++- portal-FE-os/src/app/shared/utils/utils.js | 20 ++++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/portal-FE-os/src/app/shared/interceptors/header-interceptor.ts b/portal-FE-os/src/app/shared/interceptors/header-interceptor.ts index bb76e14b..10a3f95b 100644 --- a/portal-FE-os/src/app/shared/interceptors/header-interceptor.ts +++ b/portal-FE-os/src/app/shared/interceptors/header-interceptor.ts @@ -46,17 +46,22 @@ import { import { Observable } from 'rxjs'; import { v4 as uuid } from 'uuid'; import { Injectable } from '@angular/core'; -declare const getWebJunctionXSRFToken: any; +declare const getXSRFToken: any; @Injectable() export class HeaderInterceptor implements HttpInterceptor { intercept(req: HttpRequest, next: HttpHandler): Observable> { // Clone the request to add the new header // HttpHeader object immutable - copy values + var XSRFToken = getXSRFToken(); const headerSettings: { [name: string]: string | string[]; } = {}; headerSettings['X-ECOMP-RequestID'] = uuid(); const requestType = req.params.get('requestType'); + + if (XSRFToken && XSRFToken.name && XSRFToken.value) + headerSettings['X-XSRF-TOKEN'] = XSRFToken.value; + if(requestType!=null && requestType==='fileUpload'){ //headerSettings['Content-Type'] = 'multipart/form-data'; }else if(requestType!=null && requestType==='downloadWidgetFile'){ diff --git a/portal-FE-os/src/app/shared/utils/utils.js b/portal-FE-os/src/app/shared/utils/utils.js index 3c99f4ac..95d4c686 100644 --- a/portal-FE-os/src/app/shared/utils/utils.js +++ b/portal-FE-os/src/app/shared/utils/utils.js @@ -1,3 +1,23 @@ +function getXSRFToken() { + var cookies = getCookies(); + var XSRFToken = { + name:'', + value:'' + }; + //var contextRoot = getContextRoot(); + var hasXSRFToken = false; + for(var name in cookies) { + if(name == "XSRF-TOKEN") { + XSRFToken.name = name; + XSRFToken.value = cookies[name]; + hasXSRFToken = true; + } + } + + return (hasXSRFToken==false)?null:XSRFToken; +} + + function getCookies() { var cookies = { }; if (document.cookie && document.cookie != '') { -- 2.16.6