Hello,

I'm trying to make a desktop client written in Python 2.5 (on Windows)
communicate with a web2py 1.76.5 based app using services. It works
fine with services that don't require authentication, but I was
wondering if I could make it authenticate the user with Basic
authentication.

I've read in the Python docs that xmlrpclib supports Basic authentication:

"
Both the HTTP and HTTPS transports support the URL syntax extension
for HTTP Basic Authentication: http://user:p...@host:port/path. The
user:pass portion will be base64-encoded as an HTTP `Authorization'
header, and sent to the remote server as part of the connection
process when invoking an XML-RPC method.
"

In my modified Welcome web2py app I've added the setting
auth.settings.allow_basic_authentication = True in
welcome/models/db.py

I've decorated the private_call action like so:

@auth.requires_login()
def private_call():
    return private_service()

And I've added a test action getstring:

@private_service.xmlrpc
def getstring():
    if auth.is_logged_in():
        return "logged in!"
    else:
        return "not logged in!"

In my desktop app I'm calling the service like this:

self.server = 
xmlrpclib.Server("http://myem...@gmail.com:mypassw...@127.0.0.1:8000/welcome/default/private_call/xmlrpc";)
print self.server.getstring()

and I'm getting this traceback:

Traceback (most recent call last):
  File "C:\Users\Alexei\Documents\wxPython\Boa\xml_rpc_test\Frame1.py", line 137
, in OnButton4Button
    print self.server3.getstring()
  File "C:\Python25\lib\xmlrpclib.py", line 1147, in __call__
    return self.__send(self.__name, args)
  File "C:\Python25\lib\xmlrpclib.py", line 1437, in __request
    verbose=self.__verbose
  File "C:\Users\Alexei\Documents\wxPython\Boa\xml_rpc_test\Frame1.py", line 185
, in request
    headers
xmlrpclib.ProtocolError: <ProtocolError for myem...@gmail.com:mypassword@
127.0.0.1:8000/welcome/default/private_call/xmlrpc: 303 SEE OTHER>

I'm obviously doing something wrong. Could you point me in the right direction?

Thanks.

-- 
Alexei Vinidiktov

-- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To post to this group, send email to web...@googlegroups.com.
To unsubscribe from this group, send email to 
web2py+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/web2py?hl=en.

Reply via email to