Я пытаюсь запустить этот пример базовой HTTP-аутентификации, который я нашел здесь , но безуспешно.Поэтому я попытался еще больше упростить это следующим образом:
from zope.interface import implementer
from twisted.cred.portal import IRealm, Portal
from twisted.web.static import File
from twisted.web.resource import IResource
from twisted.web.guard import HTTPAuthSessionWrapper, BasicCredentialFactory
from twisted.cred.checkers import InMemoryUsernamePasswordDatabaseDontUse
from twisted.python import log
import sys
from twisted.internet import reactor
from twisted.web import server, resource
@implementer(IRealm)
class PublicHTMLRealm(object):
def requestAvatar(self, avatarId, mind, *interfaces):
if IResource in interfaces:
return (IResource, File("/home"), lambda: None)
raise NotImplementedError()
log.startLogging(sys.stdout)
checkers = [InMemoryUsernamePasswordDatabaseDontUse(joe='blow')]
portal = Portal(PublicHTMLRealm(), checkers)
credentialFactory = BasicCredentialFactory('auth')
resource = HTTPAuthSessionWrapper(portal, [credentialFactory])
reactor.listenTCP(8889, server.Site(resource = resource))
reactor.run()
Однако это также не работает в python 3.6.5
с twisted 18.7.0
.Не могли бы вы предоставить мне простой рабочий twisted
пример с использованием HTTPAuthSessionWrapper
?