Fix list of allowed verbs for failed (unauthorized) preflight #4
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
During preflight (OPTIONS verb) no Authorization headers can be
provided. Some apps (see for example this issue)
require these headers to determine the identity,
when solving a path and associating it with a model (eg: imagine that
the model is a User whose identity is in that header). Without that
information a sensible action for the path function is to raise
HTTPUnauthorized.
The problem is that more.cors treats that exception (and any exception)
in the same way during preflight: a 404 error is returned and no cors
headers. This prevents the browser to continue with the operation, which
could be otherwise legal.
This patch causes more.cors to return valid cors headers even if
the path function raised HTTPUnauthorized, instead of no cors headers.