[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