基本的HTTP身份验证,扭曲不起作用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基本的HTTP身份验证,扭曲不起作用相关的知识,希望对你有一定的参考价值。

我有以下代码:

import sys

from zope.interface import implementer

from twisted.python import log
from twisted.internet import reactor
from twisted.web import server, resource, guard
from twisted.cred.portal import IRealm, Portal
from twisted.cred.checkers import InMemoryUsernamePasswordDatabaseDontUse


class GuardedResource(resource.Resource):
    """
    A resource which is protected by guard and requires authentication in order
    to access.
    """
    def getChild(self, path, request):
        return self


    def render(self, request):
        return "Authorized!"



@implementer(IRealm)
class SimpleRealm(object):
    """
    A realm which gives out L{GuardedResource} instances for authenticated
    users.
    """

    def requestAvatar(self, avatarId, mind, *interfaces):
        if resource.IResource in interfaces:
            return resource.IResource, GuardedResource(), lambda: None
        raise NotImplementedError()

def main():
    log.startLogging(sys.stdout)
    checkers = [InMemoryUsernamePasswordDatabaseDontUse(joe='blow')]
    portal = Portal(SimpleRealm(), checkers)

    resource = guard.HTTPAuthSessionWrapper(portal, [guard.BasicCredentialFactory('auth')])

    reactor.listenTCP(8889, server.Site(resource = resource))
    reactor.run()

if __name__ == '__main__':
    main()

当我们启动服务器并访问URL时:http://localhost:8889/弹出提示,要求我们输入用户名和密码。输入user = joepassword = blow后,我们仍然无权访问该网站。上面的代码有什么问题以及如何解决?

答案
有两件事要解决

以上是关于基本的HTTP身份验证,扭曲不起作用的主要内容,如果未能解决你的问题,请参考以下文章

jQuery 基本身份验证不起作用

基本身份验证在Spring-Boot WS Soap服务中不起作用

iOS - Alamofire v2 基本身份验证不起作用

具有基本身份验证的 Jersey cors 不起作用

身份验证过滤器不起作用

从Salesforce到Taleo的基本HTTP身份验证