Fixes: https://tracker.ceph.com/issues/76478
Signed-off-by: Pedro Gonzalez Gomez <pegonzal@ibm.com>
if not token:
raise cherrypy.HTTPError()
+ if OAuth2.is_token_expired(token):
+ raise cherrypy.HTTPError(401, 'Your session has expired. Please log in again.')
+
raise cherrypy.HTTPRedirect(OAuth2.get_login_redirect_url(token))
@Endpoint(json_response=False, version=None)
import importlib
import json
import logging
+import time
from typing import Dict, List
from urllib.parse import quote
except AttributeError:
raise cherrypy.HTTPError()
+ @classmethod
+ def is_token_expired(cls, token: str) -> bool:
+ try:
+ payload = decode_jwt_segment(token.split(".")[1])
+ return time.time() > payload.get('exp', 0)
+ except Exception:
+ return True
+
@classmethod
def get_token_iss(cls, token=''):
if token: