diff options
Diffstat (limited to 'vio/vio/swagger/views/proxyplugin/httpclient.py')
-rw-r--r-- | vio/vio/swagger/views/proxyplugin/httpclient.py | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/vio/vio/swagger/views/proxyplugin/httpclient.py b/vio/vio/swagger/views/proxyplugin/httpclient.py index def8eb2..0f76bad 100644 --- a/vio/vio/swagger/views/proxyplugin/httpclient.py +++ b/vio/vio/swagger/views/proxyplugin/httpclient.py @@ -73,16 +73,18 @@ class BaseClient(APIView): headers = {} preUrl = catalog.getEndpointBy( vimid, serverType=self.serverType, interface="public") + token = request.META.get('HTTP_X_AUTH_TOKEN', "") tail = "/" + tail if tail else "" tenantid = "/" + tenantid if tenantid else "" - endPointURL = preUrl + tenantid + tail + endPointURL = preUrl + tenantid + tail if preUrl else "" + headers["X-Auth-Token"] = token headers["X-Subject-Token"] = token headers['Content-Type'] = request.META.get( "CONTENT_TYPE", "application/json") - if method == "GET": + if method == "GET" and preUrl is not None: # append parameters in url path query = "" for k, v in request.GET.items(): @@ -105,6 +107,10 @@ class BaseClient(APIView): try: try: + # Authenticated failed If it cann't get + # endpoint from cache + if url == "": + return Response(data="Unauthenticated", status=401) logger.info("%(method)s Request to %(url)s ", {'url': url, 'method': method}) resp = self.session.request( |