Files
flask-sslify/flask_sslify.py
T
2012-04-29 16:46:19 -04:00

28 lines
627 B
Python

# -*- coding: utf-8 -*-
from flask import current_app as app
from flask import request, redirect
class SSLify(object):
def __init__(self, app):
self.app = app
self.install_sslify(self.app)
@classmethod
def install_sslify(cls, app):
app.before_request(cls.redirect)
@staticmethod
def redirect():
criteria = [
request.is_secure,
app.debug,
request.headers.get('X-Forwarded-Proto', 'http') == 'https'
]
if not any(criteria):
url = request.url.replace('http://', 'https://')
return redirect(url)