Скрученная аутентификация Python без HTTP-аутентификации - PullRequest
0 голосов
/ 23 марта 2019

Я настраиваю сервер 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.

...