Twisted-Klein服务器上的HTTP基本身份验证

马克·潘诺维奇

我正在Twisted-Klein用作服务器。这是一个简单的示例:

from klein import Klein


app = Klein()


@app.route('/health', methods=['GET'])
def health_check(request):
    return ''


@app.route('/query/<path:expression>', methods=['GET'])
def query(request, expression):
    return 'Expression: {0}'.format(expression)


if __name__ == '__main__':
    app.run(host='0.0.0.0', port=8000)

如何将HTTP Basic Auth添加到queryAPI端点?使用Flask,这很简单:http : //flask.pocoo.org/snippets/8/

但是我找不到在Twisted-Klein服务器上如何执行此操作的任何示例。

让·保罗·卡德隆(Jean-Paul Calderone)

Twisted本身支持HTTP基本(和摘要)身份验证,该身份验证是可以应用于任何其他资源的资源包装器

您的klein示例并未进行演示,但是klein可以(必须确实)可以从您的应用程序创建资源,以便使用Twisted的Web服务器。

您可以将它们结合起来,例如:

import attr
from zope.interface import implementer
from twisted.cred.portal import IRealm
from twisted.internet.defer import succeed
from twisted.cred.portal import Portal
from twisted.web.resource import IResource
from twisted.web.guard import HTTPAuthSessionWrapper, BasicCredentialFactory
from klein import Klein

app = Klein()
# ... define your klein app

@implementer(IRealm)
@attr.s
class TrivialRealm(object):
    resource = attr.ib()

    def requestAvatar(self, avatarId, mind, *interfaces):
        # You could have some more complicated logic here, but ...
        return succeed((IResource, self.resource, lambda: None))

def resource():
    realm = TrivialRealm(resource=app.resource())
    portal = Portal(realm, [<some credentials checkers>])
    credentialFactory = BasicCredentialFactory(b"http auth realm")
    return HTTPAuthSessionWrapper(portal, [credentialFactory])

您可以根据klein文档twistd web运行此命令以使用

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Twisted Python客户端/服务器的Kerberos身份验证

来自分类Dev

在Twisted上检查服务器状态

来自分类Dev

获取Twisted服务器的IP地址

来自分类Dev

无法写入Twisted FTP服务器

来自分类Dev

如何在 python 中的 Twisted 客户端服务器应用程序中添加身份验证(用户名/密码)?

来自分类Dev

python / twisted上的客户端/服务器

来自分类Dev

python / twisted上的客户端/服务器

来自分类Dev

在Twisted的Perspective Broker中使用备用身份验证

来自分类Dev

使用Twisted的HTTP双向代理

来自分类Dev

Twisted Python:UDP广播(简单的回显服务器)

来自分类Dev

滞后于来自Twisted服务器的消息

来自分类Dev

Twisted SSE服务器通过pubsub订阅了Redis

来自分类Dev

Twisted 服务器:monkey-patch 文件

来自分类Dev

Codeigniter Rest服务器摘要或基本身份验证无法登录

来自分类Dev

基本身份验证服务器响应为未授权

来自分类Dev

Adonisjs - 向静态服务器中间件添加基本身份验证?

来自分类Dev

在服务器端设置基本身份验证

来自分类Dev

无法使用twisted.web.AGENT向Django服务器发出HTTP请求

来自分类Dev

HTTP two-way proxy using Twisted

来自分类Dev

在Twisted中限制http客户端

来自分类Dev

twisted.web.client HTTP日志记录

来自分类Dev

twisted.web.client HTTP日志记录

来自分类Dev

在twisted.web上运行django

来自分类Dev

ImportError:无法在Twisted上导入名称SerialPort

来自分类Dev

使用Twisted跟踪iPhone上的GPS位置

来自分类Dev

在Windows上无法构建twisted [tls]?

来自分类Dev

ImportError:无法在Twisted上导入名称SerialPort

来自分类Dev

在 Windows 机器上使用 Twisted 和 Kivy

来自分类Dev

如何在OPenshift上非常简单地部署Twisted服务器

Related 相关文章

热门标签

归档