From cc1f6ee9349584f7ec7b6f16861805a43f7161d6 Mon Sep 17 00:00:00 2001 From: Dan Scott Date: Thu, 18 Jun 2015 11:52:00 -0400 Subject: [PATCH] LP#1409055 Support specific protocols for OpenSRF gateway requests If the user passes in a gateway hostname that contains a specific HTTP or HTTPS protocol, let's just use that. Signed-off-by: Dan Scott Signed-off-by: Bill Erickson --- src/python/osrf/gateway.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/python/osrf/gateway.py b/src/python/osrf/gateway.py index eda1139..8796ce2 100644 --- a/src/python/osrf/gateway.py +++ b/src/python/osrf/gateway.py @@ -50,6 +50,18 @@ class GatewayRequest: setDefaultHost = staticmethod(setDefaultHost) def buildURL(self): + """ + Builds the URL for the OpenSRF gateway based on the host and path + + Previous versions of the code assumed that the host would be a bare + hostname or IP address, and prepended the http:// protocol. However, + to enable more secure communications, now we check for the existence + of the HTTP or HTTPS prefix and use that if it has been supplied. + """ + + if defaultHost.lower().startswith(('http://', 'https://')): + return '%s/%s' % (defaultHost, self.path) + return 'http://%s/%s' % (defaultHost, self.path) class JSONGatewayRequest(GatewayRequest): -- 2.43.2