From 3b4171e8d037a915e98dc753e3c8f88d13c7f38f Mon Sep 17 00:00:00 2001 From: wanyu_wang Date: Sun, 2 Apr 2023 22:55:59 +0800 Subject: [PATCH] update method of get token --- ecsclient/common/token_request.py | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/ecsclient/common/token_request.py b/ecsclient/common/token_request.py index f6d7292..d0ccc1b 100644 --- a/ecsclient/common/token_request.py +++ b/ecsclient/common/token_request.py @@ -63,11 +63,25 @@ def get_new_token(self): """ log.info("Getting new token") self.session.auth = (self.username, self.password) + headers = {'Accept': 'application/json'} req = self.session.get(self.token_endpoint, verify=self.verify_ssl, - headers={'Accept': 'application/json'}, + headers=headers, timeout=self.request_timeout) + if req.status_code == 405: + data_auth = dict( + username=self.username, + password=self.password + ) + + req = self.session.post( + self.token_endpoint, + json=data_auth, + headers=headers, + verify=self.verify_ssl, + timeout=self.request_timeout + ) if req.status_code == 401: msg = 'Invalid username or password' @@ -78,7 +92,7 @@ def get_new_token(self): log.fatal(msg) raise ECSClientException.from_response(req, message=msg) - self.token = req.headers['x-sds-auth-token'] + self.token = req.headers.get('x-sds-auth-token', "") or req.json().get('access_token') if self.cache_token: log.debug("Caching token to '{0}'".format(self.token_path))