From e931d025ecde1385c77bbabd7a5c3d0e4c4978a6 Mon Sep 17 00:00:00 2001 From: Charles Lowell Date: Thu, 6 Jun 2019 11:41:17 -0700 Subject: [PATCH 1/3] ensure addends are ints --- msal/token_cache.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/msal/token_cache.py b/msal/token_cache.py index e726dc6e..6d241c30 100644 --- a/msal/token_cache.py +++ b/msal/token_cache.py @@ -1,4 +1,4 @@ -import json +import json import threading import time import logging @@ -128,8 +128,9 @@ def add(self, event, now=None): with self._lock: if access_token: - now = time.time() if now is None else now - expires_in = response.get("expires_in", 3599) + now = int(time.time()) if now is None else int(now) + expires_in = int(response.get("expires_in", 3599)) + ext_expires_in = int(response.get("ext_expires_in", expires_in)) at = { "credential_type": self.CredentialType.ACCESS_TOKEN, "secret": access_token, @@ -138,10 +139,9 @@ def add(self, event, now=None): "client_id": event.get("client_id"), "target": target, "realm": realm, - "cached_at": str(int(now)), # Schema defines it as a string - "expires_on": str(int(now + expires_in)), # Same here - "extended_expires_on": str(int( # Same here - now + response.get("ext_expires_in", expires_in))), + "cached_at": str(now), # Schema defines it as a string + "expires_on": str(now + expires_in), # Same here + "extended_expires_on": str(now + ext_expires_in) # Same here } self.modify(self.CredentialType.ACCESS_TOKEN, at, at) From 0075528d2e33411d8c4061c0a5950d7a982e8050 Mon Sep 17 00:00:00 2001 From: Charles Lowell Date: Thu, 6 Jun 2019 11:42:56 -0700 Subject: [PATCH 2/3] str.join raises when passed None --- msal/token_cache.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/msal/token_cache.py b/msal/token_cache.py index 6d241c30..ac96424c 100644 --- a/msal/token_cache.py +++ b/msal/token_cache.py @@ -1,4 +1,4 @@ -import json +import json import threading import time import logging @@ -54,7 +54,7 @@ def __init__(self): home_account_id or "", environment or "", self.CredentialType.ACCESS_TOKEN, - client_id, + client_id or "", realm or "", target or "", ]).lower(), From c0ea957009cc234ac7c9dc747718f1a6d5824787 Mon Sep 17 00:00:00 2001 From: Ray Luo Date: Tue, 11 Jun 2019 12:42:32 -0700 Subject: [PATCH 3/3] Explain the reason of this subtle change --- msal/token_cache.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/msal/token_cache.py b/msal/token_cache.py index ac96424c..358b064b 100644 --- a/msal/token_cache.py +++ b/msal/token_cache.py @@ -128,9 +128,11 @@ def add(self, event, now=None): with self._lock: if access_token: - now = int(time.time()) if now is None else int(now) - expires_in = int(response.get("expires_in", 3599)) - ext_expires_in = int(response.get("ext_expires_in", expires_in)) + now = int(time.time() if now is None else now) + expires_in = int( # AADv1-like endpoint returns a string + response.get("expires_in", 3599)) + ext_expires_in = int( # AADv1-like endpoint returns a string + response.get("ext_expires_in", expires_in)) at = { "credential_type": self.CredentialType.ACCESS_TOKEN, "secret": access_token,