diff --git a/propedal-planner/calendar_interface.py b/propedal-planner/calendar_interface.py index c6add22..f157ff1 100644 --- a/propedal-planner/calendar_interface.py +++ b/propedal-planner/calendar_interface.py @@ -13,7 +13,8 @@ except ImportError: from backports.zoneinfo import ZoneInfo WEEKDAYS= {0:"Mo", 1:"Di", 2:"Mi", 3:"Do", 4: "Fr", 5:"Sa", 6: "So"} -result = None +token = None +cache = msal.SerializableTokenCache() # Optional logging @@ -21,36 +22,38 @@ result = None # Create a preferably long-lived app instance which maintains a token cache. app = msal.ConfidentialClientApplication( - MsalConfig.CLIENT_ID, authority=MsalConfig.AUTHORITY, + MsalConfig.CLIENT_ID, + authority=MsalConfig.AUTHORITY, client_credential=MsalConfig.SECRET, - # token_cache=... # Default cache is in memory only. + token_cache=cache + # Default cache is in memory only. # You can learn how to use SerializableTokenCache from # https:#msal-python.readthedocs.io/en/latest/#msal.SerializableTokenCache ) def get_access_token(): - global app, result + global app, token # The pattern to acquire a token looks like this. # Firstly, looks up a token from cache # Since we are looking for token for the current app, NOT for an end user, # notice we give account parameter as None. - result = app.acquire_token_silent(MsalConfig.SCOPE, account=None) + token = app.acquire_token_silent(MsalConfig.SCOPE, account=None) - if result is None: + if token is None: logging.info("No suitable token exists in cache. Let's get a new one from AAD.") - result= app.acquire_token_for_client(scopes=MsalConfig.SCOPE) + token= app.acquire_token_for_client(scopes=MsalConfig.SCOPE) else: logging.info("Token was found in cache.") - if not "access_token" in result: # a final check - logging.error(result.get("error")) - logging.error(result.get("error_description")) - logging.error(result.get("correlation_id")) # You may need this when reporting a bug + if not "access_token" in token: # a final check + logging.error(token.get("error")) + logging.error(token.get("error_description")) + logging.error(token.get("correlation_id")) # You may need this when reporting a bug raise AssertionError("Was not able to get an access token. Check msal auth.") - return result + return token def execute_get_request(token: dict, endpoint:str): return requests.get( # Use token to call downstream service