Verify if certfile and keyfile are paths to actual files

This allow to try to not use ssl if the key file path or the certificate file are broken. The files might be missing because the user intentionally removed them but didn't  update the settings first. In that situation, this change won't make the app crash, the warning is logged and that way the user has the chance to update the settings.
This commit is contained in:
André Santos 2018-11-16 23:32:21 +00:00
parent 399dffba5a
commit af216e3697

View File

@ -32,9 +32,14 @@ class server:
def start_gevent(self): def start_gevent(self):
try: try:
ssl_args = dict() ssl_args = dict()
if web.ub.config.get_config_certfile() and web.ub.config.get_config_keyfile(): certfile_path = web.ub.config.get_config_certfile()
ssl_args = {"certfile": web.ub.config.get_config_certfile(), keyfile_path = web.ub.config.get_config_keyfile()
"keyfile": web.ub.config.get_config_keyfile()} if certfile_path and keyfile_path:
if os.path.isfile(certfile_path) and os.path.isfile(keyfile_path):
ssl_args = {"certfile": certfile_path,
"keyfile": keyfile_path}
else:
web.app.logger.info('The specified paths for the ssl certificate file and/or key file seem to be broken. Ignoring ssl. Cert path: %s | Key path: %s' % (certfile_path, keyfile_path))
if os.name == 'nt': if os.name == 'nt':
self.wsgiserver= WSGIServer(('0.0.0.0', web.ub.config.config_port), web.app, spawn=Pool(), **ssl_args) self.wsgiserver= WSGIServer(('0.0.0.0', web.ub.config.config_port), web.app, spawn=Pool(), **ssl_args)
else: else:
@ -61,9 +66,14 @@ class server:
else: else:
try: try:
web.app.logger.info('Starting Tornado server') web.app.logger.info('Starting Tornado server')
if web.ub.config.get_config_certfile() and web.ub.config.get_config_keyfile(): certfile_path = web.ub.config.get_config_certfile()
ssl={"certfile": web.ub.config.get_config_certfile(), keyfile_path = web.ub.config.get_config_keyfile()
"keyfile": web.ub.config.get_config_keyfile()} if certfile_path and keyfile_path:
if os.path.isfile(certfile_path) and os.path.isfile(keyfile_path):
ssl_args = {"certfile": certfile_path,
"keyfile": keyfile_path}
else:
web.app.logger.info('The specified paths for the ssl certificate file and/or key file seem to be broken. Ignoring ssl. Cert path: %s | Key path: %s' % (certfile_path, keyfile_path))
else: else:
ssl=None ssl=None
# Max Buffersize set to 200MB # Max Buffersize set to 200MB