From adc16921b4ace7ca667a14b96eab62594fb4ed88 Mon Sep 17 00:00:00 2001 From: Ilya Etingof Date: Thu, 4 Apr 2019 18:19:56 +0200 Subject: [PATCH] Use HTTP code 307 for redirects Changed HTTP redirect code from 302 to 307 to ensure the original HTTP method is left intact. Otherwise some clients may change PUT/POST to GET on redirect and effectively fail to perform the change they intended. Change-Id: I32613e1ebb4a2eaba33c5884ddbd3ec7cf77d6fd Story: 2005370 Task: 30346 --- releasenotes/notes/fix-redirect-code-a0aa43251be7de0c.yaml | 7 +++++++ sushy_tools/emulator/main.py | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 releasenotes/notes/fix-redirect-code-a0aa43251be7de0c.yaml diff --git a/releasenotes/notes/fix-redirect-code-a0aa43251be7de0c.yaml b/releasenotes/notes/fix-redirect-code-a0aa43251be7de0c.yaml new file mode 100644 index 00000000..c49fb9b7 --- /dev/null +++ b/releasenotes/notes/fix-redirect-code-a0aa43251be7de0c.yaml @@ -0,0 +1,7 @@ +--- +fixes: + - | + Changed HTTP redirect code from 302 to 307 to ensure the + original HTTP method is left intact. Otherwise some clients + may change PUT/POST to GET on redirect and effectively fail + to perform the change they intended. diff --git a/sushy_tools/emulator/main.py b/sushy_tools/emulator/main.py index 57c5e161..5cf196ed 100755 --- a/sushy_tools/emulator/main.py +++ b/sushy_tools/emulator/main.py @@ -126,7 +126,7 @@ def returns_json(decorated_func): def all_exception_handler(message): if isinstance(message, error.AliasAccessError): url = flask.url_for(flask.request.endpoint, identity=message.args[0]) - return flask.redirect(url, Response=flask.Response) + return flask.redirect(url, code=307, Response=flask.Response) return flask.render_template('error.json', message=message), 500