Проблема проверки подлинности библиотеки Python Twisted - PullRequest
1 голос
/ 19 июля 2011

Я прошу вас помочь мне найти источник проблем с помощью следующего кода. Я использовал страницу http://jcalderone.livejournal.com/53074.html в качестве руководства. Единственное отличие моего кода в том, что ресурс не подается из файла .rpy. Также нигде нет вызова cache ().

Результат открытия страницы на https://serveraddr:serverport/services/admin - 403 Запрещено. Он должен показать выходные данные UpdateManager.render_GET ().

В server.tac:

...

root = resource.ForbiddenResource()
err = resource.ForbiddenResource()
root.putChild("service", err)
upd = UpdateXMLProcessor()
err.putChild("update2", upd)

portal = Portal(PublicHTMLRealm(), [FilePasswordDB('httpd.password')])
credentialFactory = DigestCredentialFactory("md5", "House of Life Updates")
admin = HTTPAuthSessionWrapper(portal, [credentialFactory])
err.putChild('admin', admin)

...

В auth.py:

class PublicHTMLRealm(object):
   implements(IRealm)

   def requestAvatar(self, avatarId, mind, *interfaces):
       if IResource in interfaces:
           resc = UpdateManager()
           resc.realm = self
           return (IResource, resc, lambda: None)
       raise NotImplementedError()

в admin.py:

class UpdateManager(resource.Resource):
   isLeaf = False
   pathFromRoot = '/service/admin'

   def __init__(self):
       resource.Resource.__init__(self)
       self.newFull = NewFullResource()
       self.putChild('new_full', self.newFull)
       self.newDelta = NewDeltaResource()
       self.putChild('new_delta', self.newDelta)
       self.switch = SwitchResource()
       self.putChild('switch', self.switch)
       self.putChild('', self)

   def render_GET(self, request):
       ...

Что-то не так здесь в этих частях кода? У меня нет ошибок, отображаемых в консоли, работающей с

twistd -ny server.tac
...