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 logging
|
||||||
import os
|
import os
|
||||||
|
|
||||||
try:
|
|
||||||
from ssl import *
|
|
||||||
HAS_SSL = True
|
|
||||||
except ImportError:
|
|
||||||
HAS_SSL = False
|
|
||||||
|
|
||||||
_service={}
|
_service={}
|
||||||
_group={}
|
_group={}
|
||||||
_res_id=1
|
_res_id=1
|
||||||
|
@ -219,36 +213,55 @@ class GenericXMLRPCRequestHandler:
|
||||||
pdb.post_mortem(tb)
|
pdb.post_mortem(tb)
|
||||||
raise xmlrpclib.Fault(s, tb_s)
|
raise xmlrpclib.Fault(s, tb_s)
|
||||||
|
|
||||||
class SimpleXMLRPCRequestHandler(GenericXMLRPCRequestHandler, SimpleXMLRPCServer.SimpleXMLRPCRequestHandler):
|
class SimpleXMLRPCRequestHandler(GenericXMLRPCRequestHandler,
|
||||||
SimpleXMLRPCServer.SimpleXMLRPCRequestHandler.rpc_paths = ('/xmlrpc/db', '/xmlrpc/common', '/xmlrpc/object', '/xmlrpc/report', '/xmlrpc/wizard')
|
SimpleXMLRPCServer.SimpleXMLRPCRequestHandler):
|
||||||
|
SimpleXMLRPCServer.SimpleXMLRPCRequestHandler.rpc_paths = (
|
||||||
|
'/xmlrpc/db',
|
||||||
|
'/xmlrpc/common',
|
||||||
|
'/xmlrpc/object',
|
||||||
|
'/xmlrpc/report',
|
||||||
|
'/xmlrpc/wizard',
|
||||||
|
)
|
||||||
|
|
||||||
if HAS_SSL:
|
class SimpleThreadedXMLRPCServer(SocketServer.ThreadingMixIn,
|
||||||
class SecureXMLRPCRequestHandler(GenericXMLRPCRequestHandler, SecureXMLRPCServer.SecureXMLRPCRequestHandler):
|
SimpleXMLRPCServer.SimpleXMLRPCServer):
|
||||||
SecureXMLRPCServer.SecureXMLRPCRequestHandler.rpc_paths = ('/xmlrpc/db', '/xmlrpc/common', '/xmlrpc/object', '/xmlrpc/report', '/xmlrpc/wizard')
|
|
||||||
|
|
||||||
class SimpleThreadedXMLRPCServer(SocketServer.ThreadingMixIn, SimpleXMLRPCServer.SimpleXMLRPCServer):
|
|
||||||
def server_bind(self):
|
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)
|
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):
|
class HttpDaemon(threading.Thread):
|
||||||
|
|
||||||
def __init__(self, interface,port, secure=False):
|
def __init__(self, interface,port, secure=False):
|
||||||
threading.Thread.__init__(self)
|
threading.Thread.__init__(self)
|
||||||
self.__port=port
|
self.__port=port
|
||||||
self.__interface=interface
|
self.__interface=interface
|
||||||
self.secure = secure
|
self.secure = secure
|
||||||
if secure and HAS_SSL:
|
if secure:
|
||||||
self.server = SecureThreadedXMLRPCServer((interface, port), SecureXMLRPCRequestHandler,0)
|
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:
|
else:
|
||||||
self.server = SimpleThreadedXMLRPCServer((interface, port), SimpleXMLRPCRequestHandler,0)
|
self.server = SimpleThreadedXMLRPCServer((interface, port),
|
||||||
|
SimpleXMLRPCRequestHandler,0)
|
||||||
|
|
||||||
def attach(self,path,gw):
|
def attach(self,path,gw):
|
||||||
pass
|
pass
|
||||||
|
|
|
@ -215,18 +215,17 @@ if tools.config['xmlrpc']:
|
||||||
if tools.config["xmlrpc"]:
|
if tools.config["xmlrpc"]:
|
||||||
xml_gw = netsvc.xmlrpc.RpcGateway('web-services')
|
xml_gw = netsvc.xmlrpc.RpcGateway('web-services')
|
||||||
httpd.attach("/xmlrpc", xml_gw )
|
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"]:
|
#if tools.config["soap"]:
|
||||||
# soap_gw = netsvc.xmlrpc.RpcGateway('web-services')
|
# soap_gw = netsvc.xmlrpc.RpcGateway('web-services')
|
||||||
# httpd.attach("/soap", soap_gw )
|
# httpd.attach("/soap", soap_gw )
|
||||||
# logger.notifyChannel("web-services", netsvc.LOG_INFO, 'starting SOAP services, port '+str(port))
|
# 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']:
|
if tools.config['netrpc']:
|
||||||
try:
|
try:
|
||||||
|
|
Loading…
Reference in New Issue