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