[Twisted-Python] Problem with XMLRPC resource wrapped with guard basic auth
asset
asset at impactdamage.com
Tue Oct 6 20:00:19 EDT 2009
Using the current trunk r27366 (which is after #4014 fixed a related
issue), I am having trouble with an implementation of web.guard wrapped
XMLRPC. This is a new test implementation to expose both a soap and xmlrpc
interface. SOAP works, but xmlrpc throws UnsupportedMethod POST.
Here is my test code, can anybody tell me if im doing something wrong?
Again, /soap works, but /rpc2 freaks on the POST method being unavailable.
###### test-script.py
from zope.interface import implements
from twisted.internet import reactor
from twisted.web.resource import IResource, Resource
from twisted.web import server, guard
from twisted.cred.portal import IRealm
from twisted.python import log
from zope.interface import implements
from twisted.python import log
from twisted.internet import reactor
from twisted.web import server, resource, guard, xmlrpc, soap
from twisted.cred.portal import IRealm, Portal
from twisted.cred.checkers import InMemoryUsernamePasswordDatabaseDontUse
import sys
def getQuote():
return "Victory to the burgeois, you capitalist swine!"
class XMLRPCQuoter(xmlrpc.XMLRPC):
def xmlrpc_quote(self):
return getQuote()
class SOAPQuoter(soap.SOAPPublisher):
def soap_quote(self):
return getQuote()
class WebServicesRealm(object):
implements(IRealm)
def requestAvatar(self, avatarId, mind, *interfaces):
if resource.IResource in interfaces:
node = resource.Resource()
node.putChild("rpc2", XMLRPCQuoter())
node.putChild("soap", SOAPQuoter())
return resource.IResource, node, lambda: None
raise NotImplementedError()
if __name__ == "__main__":
log.startLogging(sys.stdout)
checker = [InMemoryUsernamePasswordDatabaseDontUse(foo='bar')]
webServicesWrapper =
guard.HTTPAuthSessionWrapper(Portal(WebServicesRealm(), checker),
[guard.BasicCredentialFactory("test")])
reactor.listenTCP(9999, server.Site(webServicesWrapper))
reactor.run()
######
http://localhost:9999/soap *good*
http://localhost:9999/rpc2 *bad; POST isnt an allowed method*
Thanks,
TWKiel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://twistedmatrix.com/pipermail/twisted-python/attachments/20091006/091dc8b1/attachment.htm
More information about the Twisted-Python
mailing list