From b0b87a7b6e189cc31b939399a3dd072029f86a00 Mon Sep 17 00:00:00 2001 From: Simon Detheridge Date: Wed, 19 Dec 2018 15:47:01 +0000 Subject: [PATCH] Merge pull request #1299 from sharelatex/spd-redirect-bypass-header Add support for header to allow bypass of redirects GitOrigin-RevId: 2d40c51c23809c19f0a053093e8ee0719a0190e2 --- .../web/app/coffee/infrastructure/RedirectManager.coffee | 1 + .../web/test/acceptance/coffee/RedirectUrlsTests.coffee | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/services/web/app/coffee/infrastructure/RedirectManager.coffee b/services/web/app/coffee/infrastructure/RedirectManager.coffee index d4a9dd7c9a..d2a9f4b5cc 100644 --- a/services/web/app/coffee/infrastructure/RedirectManager.coffee +++ b/services/web/app/coffee/infrastructure/RedirectManager.coffee @@ -11,6 +11,7 @@ module.exports = RedirectManager = createRedirect: (target) -> (req, res, next) -> + return next() if req.headers?['x-skip-redirects']? code = 302 if typeof target is 'string' url = target diff --git a/services/web/test/acceptance/coffee/RedirectUrlsTests.coffee b/services/web/test/acceptance/coffee/RedirectUrlsTests.coffee index 8dd4fdb1c1..e6ed784962 100644 --- a/services/web/test/acceptance/coffee/RedirectUrlsTests.coffee +++ b/services/web/test/acceptance/coffee/RedirectUrlsTests.coffee @@ -33,6 +33,12 @@ describe "RedirectUrls", -> it 'redirects with query params', (done) -> assertRedirect 'get', '/redirect/qs?foo=bar&baz[]=qux1&baz[]=qux2', 302, '/destination/qs?foo=bar&baz[]=qux1&baz[]=qux2', done + it "skips redirects if the 'skip-redirects' header is set", (done) -> + request.get {url: '/redirect/one', headers: {'x-skip-redirects': 'true'}}, (error, response) -> + should.not.exist error + response.statusCode.should.equal 404 + done() + it 'redirects to /sign_in_to_v1 with authWithV1 setting', (done) -> assertRedirect( 'get',