- March 2, 2009
- ssl decorator
- 2 (after 2 ratings)
Wrote this some time ago when I couldn't find one already completed. Came up in the IRC channel so I decided to post it.
Easy enough to use.
from ssldecorator import ssl_required
''' your code here '''
You can place a variable in your settings.py to change the SSL domain (ie, if you have SSL running on secure.yourdomain.com instead of www.yourdomain.com)..
SSL_DOMAIN = 'https://secure.yourdomain.com'
Note: please include a proper URL. If https isn't used, the decorator will add it.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
import urlparse from django.conf import settings from django.http import HttpResponseRedirect def ssl_required(view_func): def _checkssl(request, *args, **kwargs): if not settings.DEBUG and not request.is_secure(): if hasattr(settings, 'SSL_DOMAIN'): url_str = urlparse.urljoin( settings.SSL_DOMAIN, request.get_full_path() ) else: url_str = request.build_absolute_uri() url_str = url_str.replace('http://', 'https://') return HttpResponseRedirect(url_str) return view_func(request, *args, **kwargs) return _checkssl
More like this
- SSL / HTTPS Middleware for Redirection and href Rewriting by DrMeers 6 years, 2 months ago
- Enable AWS ELB with SSL Termination by zvikico 5 years ago
- Fake SSL Middleware for Tests and Local Development by DrMeers 6 years, 1 month ago
- SSL Middleware by sjzabel 9 years, 3 months ago
- HTTP Authorization Middleware/Decorator by schinckel 6 years, 9 months ago