From b7a96424f1c762d2e7617c9b2eb63f0c946e3579 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20P=C3=A9ters?= Date: Mon, 4 May 2020 09:18:34 +0200 Subject: [PATCH] use api manager token for sendfile API (#42351) --- grandlyon_cartads_cs/models.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/grandlyon_cartads_cs/models.py b/grandlyon_cartads_cs/models.py index baffd6c..49bae33 100644 --- a/grandlyon_cartads_cs/models.py +++ b/grandlyon_cartads_cs/models.py @@ -94,7 +94,11 @@ class GLCartaDSCS(AbstractCartaDSCS): # to DoS the server. # -- https://bz.apache.org/bugzilla/show_bug.cgi?id=39243 # and that's why there's a seemingly unnecessary GET request first. - self.requests.get(self.sendfile_ws_url) + api_manager_token = self.resource.get_api_manager_token() + response = self.requests.get(self.sendfile_ws_url, + headers={'Authorization': api_manager_token}) + if response.status_code == 401: + api_manager_token = self.resource.get_api_manager_token(renew=True) b64_zip = base64.b64encode(open(zip_filename, 'rb').read()) chunk_size = 16777216 # 16MB for n in range(0, len(b64_zip), chunk_size): @@ -102,7 +106,8 @@ class GLCartaDSCS(AbstractCartaDSCS): data={ 'fileName': self.sendfile_ws_dirname + os.path.basename(zip_filename), 'b64_fileContent': b64_zip[n:n+chunk_size].decode('ascii'), - } + }, + headers={'Authorization': api_manager_token} ) resp.raise_for_status() if resp.content: