Source code for globus_sdk.token_storage.validating_token_storage.errors

from __future__ import annotations

import uuid
from datetime import datetime

from globus_sdk import GlobusError, Scope


[docs] class TokenValidationError(GlobusError): """The class of errors raised when a token fails validation."""
class IdentityValidationError(TokenValidationError): """ The class of errors raised when a token response's identity is indeterminate or incorrect. """ class MissingIdentityError(IdentityValidationError, LookupError): """No identity info contained in a token response.""" class IdentityMismatchError(IdentityValidationError, ValueError): """The identity in a token response did not match the expected identity.""" def __init__( self, message: str, stored_id: uuid.UUID | str, new_id: uuid.UUID | str ) -> None: super().__init__(message) self.stored_id = stored_id self.new_id = new_id class MissingTokenError(TokenValidationError, LookupError): """No token stored for a given resource server.""" def __init__(self, message: str, resource_server: str) -> None: super().__init__(message) self.resource_server = resource_server class ExpiredTokenError(TokenValidationError, ValueError): """The token stored for a given resource server has expired.""" def __init__(self, expires_at_seconds: int) -> None: expiration = datetime.fromtimestamp(expires_at_seconds) super().__init__(f"Token expired at {expiration.isoformat()}") self.expiration = expiration class UnmetScopeRequirementsError(TokenValidationError, ValueError): """The token stored for a given resource server is missing required scopes.""" def __init__( self, message: str, scope_requirements: dict[str, list[Scope]] ) -> None: super().__init__(message) # The full set of scope requirements which were evaluated. # Notably this is not exclusively the unmet scope requirements. self.scope_requirements = scope_requirements