Я настраиваю сервер Flask и хочу использовать Twisted ReverseProxyResource
для прокси через другой локальный сервер. В Flask у меня есть логическое значение current_user.is_authenticated
, которое я использую для защиты страниц. Как я могу заблокировать ReverseProxyResource
с помощью этой переменной, чтобы к ней нельзя было получить доступ, когда пользователь вышел из системы? Модуль twisted.web.guard
требует, чтобы я полностью настроил другую систему аутентификации HTTP, а в библиотеке, похоже, нет другого встроенного решения.
Я установил некоторый демонстрационный код (на основе предыдущего вопроса ), пытаясь разместить сервер Flask внутри витого реактора. Я использую ReverseProxyResource
для двусторонней связи с сервером Shellinabox через порт 4200.
from flask import Flask
from twisted.internet import reactor
from twisted.web.proxy import ReverseProxyResource
from twisted.web.resource import Resource
from twisted.web.server import Site
from twisted.web.wsgi import WSGIResource
app = Flask(__name__)
@app.route('/example')
def index():
return 'Flask within Twisted?'
flask_site = WSGIResource(reactor, reactor.getThreadPool(), app)
root = Resource()
site_example = ReverseProxyResource('localhost', 4200, b'')
root.putChild(b'ssh', site_example)
reactor.listenTCP(8081, Site(root))
reactor.run()
Я бы хорошо переключился на другой обратный прокси, но пока работал только Twisted. Я также не хочу переключаться на фреймворк Klein из-за того, что я уже установил в Flask.