mirror of https://github.com/microsoft/autogen.git
43 lines
1.2 KiB
Python
43 lines
1.2 KiB
Python
from fastapi import HTTPException
|
|
|
|
|
|
class AuthException(HTTPException):
|
|
"""Base class for authentication exceptions."""
|
|
|
|
def __init__(self, detail: str, headers: dict | None = None):
|
|
super().__init__(status_code=401, detail=detail, headers=headers)
|
|
|
|
|
|
class InvalidTokenException(AuthException):
|
|
"""Exception raised when token is invalid."""
|
|
|
|
def __init__(self):
|
|
super().__init__(detail="Invalid or expired token")
|
|
|
|
|
|
class MissingTokenException(AuthException):
|
|
"""Exception raised when token is missing."""
|
|
|
|
def __init__(self):
|
|
super().__init__(detail="Authentication token is missing")
|
|
|
|
|
|
class ProviderAuthException(AuthException):
|
|
"""Exception raised when authentication with provider fails."""
|
|
|
|
def __init__(self, provider: str, detail: str):
|
|
super().__init__(detail=f"Authentication failed with {provider}: {detail}")
|
|
|
|
|
|
class ConfigurationException(Exception):
|
|
"""Exception raised when there's an issue with auth configuration."""
|
|
|
|
pass
|
|
|
|
|
|
class ForbiddenException(HTTPException):
|
|
"""Exception raised when user doesn't have permission."""
|
|
|
|
def __init__(self, detail: str = "You don't have permission to access this resource"):
|
|
super().__init__(status_code=403, detail=detail)
|