xmlrpclib, wsapi4plone - check username and password
문제
Here is one of my functions:
def connect():
c = xmlrpclib.ServerProxy('http://username:password@host',
allow_none=True,
)
return c
How do I check if the username and password are correct in this method before returning c
?
해결책
You can check if the provided credentials are valid by using this trick (provided that the plone site has wsapi4plone correctly installed):
>>> 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>
So the corresponding code would be:
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
제휴하지 않습니다 StackOverflow