Skip to content

Commit ba827d7

Browse files
committed
Base URL fixes and allowance for http localhost
1 parent 78270d6 commit ba827d7

File tree

4 files changed

+12
-4
lines changed

4 files changed

+12
-4
lines changed

mme_server/cli.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ def add_server(id, direction='out', key=None, label=None, base_url=None):
9797
label = id
9898

9999
if direction == 'out' and not base_url:
100-
raise Exception('--base-url must be specified for outgoing servers')
100+
raise Exception('base-url must be specified for outgoing servers')
101101

102102
with app.app_context():
103103
backend = get_backend()

mme_server/compat.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,8 @@
1111
from urllib2 import urlopen, Request
1212
except ImportError:
1313
from urllib.request import urlopen, Request
14+
15+
try:
16+
from urlparse import urlsplit
17+
except ImportError:
18+
from urllib.parse import urlsplit

mme_server/managers/__init__.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55

66
import logging
77

8-
# Import managers to register them
98
from .patients import PatientManager
109
from .servers import ServerManager
1110
from .vocabularies import VocabularyManager

mme_server/managers/servers.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import json
77
import logging
88

9+
from ..compat import urlsplit
910
from .base import BaseManager
1011

1112
logger = logging.getLogger(__name__)
@@ -62,7 +63,10 @@ class ServerManager(BaseManager):
6263
def add(self, server_id, server_label, server_key, direction, base_url=None):
6364
assert server_id and server_key and direction in ['in', 'out']
6465

65-
if base_url and not base_url.startswith('https://'):
66+
# Normalize url
67+
parsed_url = urlsplit(base_url)
68+
base_url = parsed_url.geturl()
69+
if base_url and not parsed_url.scheme == 'https' and not parsed_url.hostname == 'localhost':
6670
logger.error('base URL must start with "https://"')
6771
return
6872

@@ -89,7 +93,7 @@ def add(self, server_id, server_label, server_key, direction, base_url=None):
8993
'server_key': server_key,
9094
}
9195
if doc_type == 'server':
92-
data['base_url'] = base_url,
96+
data['base_url'] = base_url
9397

9498
self.save(id=id, doc_type=doc_type, doc=data)
9599
logger.info("Authorized {}:\n{}".format(doc_type, json.dumps(data, indent=4, sort_keys=True)))

0 commit comments

Comments
 (0)