[Python-es] Ayuda SimpleXMLRPCServer con ssl
Boris Perez Canedo
inf200523 en ucf.edu.cu
Lun Mar 8 15:20:58 CET 2010
> El vie, 05-03-2010 a las 15:15 -0500, Boris Perez Canedo escribió:
>> Hola,
>>
>>
>> Estoy tratando de montar
un servidor xml rpc, ya logre hacer basic
>> auth, y que tambien que
atendiera peticiones simultaneas pero para
>> obtener mas seguridad estoy
enredado tratando de hacerlo con ssl.
>>
>> Utilice openssl para
generar un certificado autofirmado .pem y una
>> clave privada .pem. Creo
que lo que debo hacer es redefinir el metodo
>> get_request() que hereda
SimpleXMLRPCServer de SocketServer (segun la
>> documentacion puede ser
redefinido), pero en realidad estoy a ciegas.
>>
>> def
get_request(self):
>>
>> return self.socket.accept()
>>
>> # redefiniendo get_request
>>
>> def
get_request(self):
>>
>> request, address = self.socket.accept()
>> # de la ayuda de python 2.6 modulo ssl
>> connstream =
ssl.wrap_socket(request,
>> server_side=True,
>>
certfile="sslcertificate/mycert.pem",
>>
keyfile="privatekey/mykey.pem",
>> ssl_version=ssl.PROTOCOL_TLSv1)
>>
>> return connstream, address
>>
>>
Como, hasta donde conozco del asunto, ssl hereda de socket debe
>> redefinir
los metodos read, write, etc para su proposito, pero en
>> esencia deberia
ser transparente para SimpleXMLRPCServer.
>>
>> Echo a andar el
servidor y cuando uso xmlrpclib para conctarme y
>> acceder a sus metodos,
por ejemplo:
>>
>> #ejemplo de cliente
>> import
xmlrpclib
>>
>> conn =
xmlrpclib.ServerProxy(https://myuser:mypassword@localhost:8500)
>> print
conn.test() # test es un metodo de mi servidor
>>
>> Pues se
queda colgado ni uno ni el otro me dan error ni nada.
>>
>
> Por si te sirve de algo yo tengo aquí un servidor xmlrpc con ssl que
> conseguí de alguna parte:
>
>
http://git.danigm.net/gitphp/index.php?p=geco.git&a=blob&h=0d318d739eb3df110832176ec9e63f0289f32f48&hb=1a2a1f9d0a111bdf6fb16dc011cb595431c9ceed&f=src/gecod/gecod/secure_xmlrpc.py
>
> Y aquí un ejemplo de uso:
>
>
http://git.danigm.net/gitphp/index.php?p=geco.git&a=blob&h=21c2da7b42f1b67354558c5978cf27d7074ab3a3&hb=1a2a1f9d0a111bdf6fb16dc011cb595431c9ceed&f=src/gecod/gecod/xmlrpc_frontend.py
>
Muchas gracias.
---
La mejor vacuna contra el virus A(H1N1) es la higiene personal
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20100308/23362079/attachment.html>
Más información sobre la lista de distribución Python-es