SSL を終了するロード バランスの背後に Flask アプリケーションがあります。SSL が使用されていることを「検出」し、リクエスト オブジェクトを変更するコードがあります。
@app.before_request
def before_request():
x_forwarded_proto = request.headers.get('X-Forwarded-Proto')
if x_forwarded_proto == 'https':
request.url = request.url.replace('http://', 'https://')
request.url_root = request.url_root.replace('http://', 'https://')
request.host_url = request.host_url.replace('http://', 'https://')
次に、青写真ビュー機能があります。
admin = Blueprint('admin', __name__, url_prefix='/admin')
@admin.route('/login')
def login():
print request.url
この関数の出力は (/admin/login に移動すると) 常に https:// ではなく http:// になります (関数で変更されているはずですがbefore_request
.
これを修正する方法についてのアイデアはありますか?