python - xmlrpclib、wsapi4plone - 检查用户名和密码

标签 python plone xmlrpclib

这是我的功能之一:

def connect():
    c = xmlrpclib.ServerProxy('http://username:password@host',
                allow_none=True,
            )
    return c

在返回c之前,如何检查此方法中的用户名和密码是否正确?

最佳答案

您可以使用此技巧检查提供的凭据是否有效(前提是 plone 站点已正确安装 wsapi4plone):

>>> server = xmlrpclib.ServerProxy("http://admin:admin@localhost:8080/plone")
>>> server.get_schema('Document')
{'creators': {'required': False, 'type': 'lines'}, 'description': ...
>>> baduser_server = xmlrpclib.ServerProxy("http://bad:bad@localhost:8080/plone")
>>> baduser_server.get_schema('Document')
Traceback (most recent call last):
...
ProtocolError: <ProtocolError for bad:bad@localhost:8080/plone: 401 Unauthorized>

所以对应的代码是:

from xmlrpclib import ServerProxy
from xmlrpclib import ProtocolError
try:
    server = ServerProxy("http://admin:admin@localhost:8080/plone")
    server.get_schema('Document')
    return server
except ProtocolError:
    return None

关于python - xmlrpclib、wsapi4plone - 检查用户名和密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8718366/

相关文章:

具有 ISO 格式的 Python UTC 时间戳

python - 如何使用networkx在两个图之间执行树交叉?

logging - 在 Plone 中计算页面浏览量的最佳方法

python - xmlrpclib 客户端请求超时

python - 帮助安装 cx_Oracle

python - Django 手动渲染表单并使用 csrf token

plone - Plone 站点的每周 ZODB 打包

python - 从 Renderer 实例访问 Plone 4 portlet 的分配上下文

python - 如何调整 xmlrpclib 来解释自定义类型?

python - 如何在 xmlrpc 服务器而不是客户端上查看回溯?