Don't launch server in non secure if secure have been ask.
bzr revid: ced-2502a6622822d5eb7f639abd6b6ac3f5334fed5d
This commit is contained in:
parent
2a527ec0a0
commit
e9b7a4ef12
|
@ -9,12 +9,6 @@ import socket
|
|||
import logging
|
||||
import os
|
||||
|
||||
try:
|
||||
from ssl import *
|
||||
HAS_SSL = True
|
||||
except ImportError:
|
||||
HAS_SSL = False
|
||||
|
||||
_service={}
|
||||
_group={}
|
||||
_res_id=1
|
||||
|
@ -219,36 +213,55 @@ class GenericXMLRPCRequestHandler:
|
|||
pdb.post_mortem(tb)
|
||||
raise xmlrpclib.Fault(s, tb_s)
|
||||
|
||||
class SimpleXMLRPCRequestHandler(GenericXMLRPCRequestHandler, SimpleXMLRPCServer.SimpleXMLRPCRequestHandler):
|
||||
SimpleXMLRPCServer.SimpleXMLRPCRequestHandler.rpc_paths = ('/xmlrpc/db', '/xmlrpc/common', '/xmlrpc/object', '/xmlrpc/report', '/xmlrpc/wizard')
|
||||
class SimpleXMLRPCRequestHandler(GenericXMLRPCRequestHandler,
|
||||
SimpleXMLRPCServer.SimpleXMLRPCRequestHandler):
|
||||
SimpleXMLRPCServer.SimpleXMLRPCRequestHandler.rpc_paths = (
|
||||
'/xmlrpc/db',
|
||||
'/xmlrpc/common',
|
||||
'/xmlrpc/object',
|
||||
'/xmlrpc/report',
|
||||
'/xmlrpc/wizard',
|
||||
)
|
||||
|
||||
if HAS_SSL:
|
||||
class SecureXMLRPCRequestHandler(GenericXMLRPCRequestHandler, SecureXMLRPCServer.SecureXMLRPCRequestHandler):
|
||||
SecureXMLRPCServer.SecureXMLRPCRequestHandler.rpc_paths = ('/xmlrpc/db', '/xmlrpc/common', '/xmlrpc/object', '/xmlrpc/report', '/xmlrpc/wizard')
|
||||
class SimpleThreadedXMLRPCServer(SocketServer.ThreadingMixIn,
|
||||
SimpleXMLRPCServer.SimpleXMLRPCServer):
|
||||
|
||||
class SimpleThreadedXMLRPCServer(SocketServer.ThreadingMixIn, SimpleXMLRPCServer.SimpleXMLRPCServer):
|
||||
def server_bind(self):
|
||||
self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
|
||||
self.socket.setsockopt(socket.SOL_SOCKET,
|
||||
socket.SO_REUSEADDR, 1)
|
||||
SimpleXMLRPCServer.SimpleXMLRPCServer.server_bind(self)
|
||||
|
||||
if HAS_SSL:
|
||||
class SecureThreadedXMLRPCServer(SocketServer.ThreadingMixIn, SecureXMLRPCServer.SecureXMLRPCServer):
|
||||
def server_bind(self):
|
||||
self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
|
||||
SecureXMLRPCServer.SecureXMLRPCServer.server_bind(self)
|
||||
else:
|
||||
pass
|
||||
|
||||
class HttpDaemon(threading.Thread):
|
||||
|
||||
def __init__(self, interface,port, secure=False):
|
||||
threading.Thread.__init__(self)
|
||||
self.__port=port
|
||||
self.__interface=interface
|
||||
self.secure = secure
|
||||
if secure and HAS_SSL:
|
||||
self.server = SecureThreadedXMLRPCServer((interface, port), SecureXMLRPCRequestHandler,0)
|
||||
if secure:
|
||||
from ssl import SecureXMLRPCServer
|
||||
class SecureXMLRPCRequestHandler(GenericXMLRPCRequestHandler,
|
||||
SecureXMLRPCServer.SecureXMLRPCRequestHandler):
|
||||
SecureXMLRPCServer.SecureXMLRPCRequestHandler.rpc_paths = (
|
||||
'/xmlrpc/db',
|
||||
'/xmlrpc/common',
|
||||
'/xmlrpc/object',
|
||||
'/xmlrpc/report',
|
||||
'/xmlrpc/wizard',
|
||||
)
|
||||
class SecureThreadedXMLRPCServer(SocketServer.ThreadingMixIn,
|
||||
SecureXMLRPCServer.SecureXMLRPCServer):
|
||||
|
||||
def server_bind(self):
|
||||
self.socket.setsockopt(socket.SOL_SOCKET,
|
||||
socket.SO_REUSEADDR, 1)
|
||||
SecureXMLRPCServer.SecureXMLRPCServer.server_bind(self)
|
||||
|
||||
self.server = SecureThreadedXMLRPCServer((interface, port),
|
||||
SecureXMLRPCRequestHandler,0)
|
||||
else:
|
||||
self.server = SimpleThreadedXMLRPCServer((interface, port), SimpleXMLRPCRequestHandler,0)
|
||||
self.server = SimpleThreadedXMLRPCServer((interface, port),
|
||||
SimpleXMLRPCRequestHandler,0)
|
||||
|
||||
def attach(self,path,gw):
|
||||
pass
|
||||
|
|
|
@ -215,18 +215,17 @@ if tools.config['xmlrpc']:
|
|||
if tools.config["xmlrpc"]:
|
||||
xml_gw = netsvc.xmlrpc.RpcGateway('web-services')
|
||||
httpd.attach("/xmlrpc", xml_gw )
|
||||
logger.notifyChannel("web-services", netsvc.LOG_INFO, "starting XML-RPC services, port "+str(port))
|
||||
|
||||
logger.notifyChannel("web-services", netsvc.LOG_INFO,
|
||||
"starting XML-RPC" + \
|
||||
(tools.config['secure'] and ' Secure' or '') + \
|
||||
" services, port " + str(port))
|
||||
|
||||
#
|
||||
#if tools.config["soap"]:
|
||||
# soap_gw = netsvc.xmlrpc.RpcGateway('web-services')
|
||||
# httpd.attach("/soap", soap_gw )
|
||||
# logger.notifyChannel("web-services", netsvc.LOG_INFO, 'starting SOAP services, port '+str(port))
|
||||
#
|
||||
if not (netsvc.HAS_SSL and tools.config['secure']):
|
||||
logger.notifyChannel("web-services", netsvc.LOG_INFO, "You are not using the SSL layer")
|
||||
else:
|
||||
logger.notifyChannel("web-services", netsvc.LOG_INFO, "You are using the SSL Layer")
|
||||
|
||||
if tools.config['netrpc']:
|
||||
try:
|
||||
|
|
Loading…
Reference in New Issue