From b4265e0685cb82ca7a3ec8b01140a214d8c4cb47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Barna=20To=CC=81th?= Date: Fri, 19 Aug 2016 09:07:48 +0200 Subject: [PATCH] fix(xsrf): overwrite already set xsrf header --- modules/@angular/http/src/backends/xhr_backend.ts | 2 +- modules/@angular/http/test/backends/xhr_backend_spec.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/@angular/http/src/backends/xhr_backend.ts b/modules/@angular/http/src/backends/xhr_backend.ts index b6a0467b7a..7c7e4eaf88 100644 --- a/modules/@angular/http/src/backends/xhr_backend.ts +++ b/modules/@angular/http/src/backends/xhr_backend.ts @@ -187,7 +187,7 @@ export class CookieXSRFStrategy implements XSRFStrategy { configureRequest(req: Request) { let xsrfToken = __platform_browser_private__.getDOM().getCookie(this._cookieName); - if (xsrfToken && !req.headers.has(this._headerName)) { + if (xsrfToken) { req.headers.set(this._headerName, xsrfToken); } } diff --git a/modules/@angular/http/test/backends/xhr_backend_spec.ts b/modules/@angular/http/test/backends/xhr_backend_spec.ts index 0b0184ce6b..03ee41174d 100644 --- a/modules/@angular/http/test/backends/xhr_backend_spec.ts +++ b/modules/@angular/http/test/backends/xhr_backend_spec.ts @@ -124,11 +124,11 @@ export function main() { backend.createConnection(sampleRequest); expect(sampleRequest.headers.get('X-XSRF-TOKEN')).toBe('magic XSRF value'); }); - it('respects existing headers', () => { + it('should allow overwriting of existing headers', () => { getDOM().setCookie('XSRF-TOKEN', 'magic XSRF value'); sampleRequest.headers.set('X-XSRF-TOKEN', 'already set'); backend.createConnection(sampleRequest); - expect(sampleRequest.headers.get('X-XSRF-TOKEN')).toBe('already set'); + expect(sampleRequest.headers.get('X-XSRF-TOKEN')).toBe('magic XSRF value'); }); describe('configuration', () => {