Sniff the scheme in FullyQualifiedRedirectMiddleware rather than hardcoding it to http #7
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.
I've add a method to
FullyQualifiedRedirectMiddleware
which sniffs the scheme from the request and then uses that instead of hardcoding it. It's pretty simple, and I stole the idea from django-sslify: https://github.com/rdegges/django-sslify.The basic idea is to rely on
request.is_secure()
, but I've added some extra smarts to deal with requests forwarded from a proxy too, which newer Djangos (>=1.4) deal with already, but older Djangos don't, since this is still used by mapumental on Django 1.3 from what I can see.To use it, you don't need to add anything, but requests proxied won't be correctly identified unless you set
SECURE_PROXY_SSL_HEADER
as per: https://docs.djangoproject.com/en/1.4/ref/settings/#secure-proxy-ssl-header. Does this seem like a good idea?