authentik.sources.oauth.views.base

OAuth Base views

 1"""OAuth Base views"""
 2
 3from django.http.request import HttpRequest
 4from structlog.stdlib import get_logger
 5
 6from authentik.sources.oauth.clients.base import BaseOAuthClient
 7from authentik.sources.oauth.clients.oauth1 import OAuthClient
 8from authentik.sources.oauth.clients.oauth2 import OAuth2Client
 9from authentik.sources.oauth.models import OAuthSource
10
11LOGGER = get_logger()
12
13
14class OAuthClientMixin:
15    "Mixin for getting OAuth client for a source."
16
17    request: HttpRequest  # Set by View class
18
19    client_class: type[BaseOAuthClient] | None = None
20
21    def get_client(self, source: OAuthSource, **kwargs) -> BaseOAuthClient:
22        "Get instance of the OAuth client for this source."
23        if self.client_class is not None:
24
25            return self.client_class(source, self.request, **kwargs)
26        if source.source_type.request_token_url or source.request_token_url:
27            client = OAuthClient(source, self.request, **kwargs)
28        else:
29            client = OAuth2Client(source, self.request, **kwargs)
30        LOGGER.debug("Using client for oauth request", client=client)
31        return client
LOGGER = <BoundLoggerLazyProxy(logger=None, wrapper_class=None, processors=None, context_class=None, initial_values={}, logger_factory_args=())>
class OAuthClientMixin:
15class OAuthClientMixin:
16    "Mixin for getting OAuth client for a source."
17
18    request: HttpRequest  # Set by View class
19
20    client_class: type[BaseOAuthClient] | None = None
21
22    def get_client(self, source: OAuthSource, **kwargs) -> BaseOAuthClient:
23        "Get instance of the OAuth client for this source."
24        if self.client_class is not None:
25
26            return self.client_class(source, self.request, **kwargs)
27        if source.source_type.request_token_url or source.request_token_url:
28            client = OAuthClient(source, self.request, **kwargs)
29        else:
30            client = OAuth2Client(source, self.request, **kwargs)
31        LOGGER.debug("Using client for oauth request", client=client)
32        return client

Mixin for getting OAuth client for a source.

request: django.http.request.HttpRequest
client_class: type[authentik.sources.oauth.clients.base.BaseOAuthClient] | None = None
22    def get_client(self, source: OAuthSource, **kwargs) -> BaseOAuthClient:
23        "Get instance of the OAuth client for this source."
24        if self.client_class is not None:
25
26            return self.client_class(source, self.request, **kwargs)
27        if source.source_type.request_token_url or source.request_token_url:
28            client = OAuthClient(source, self.request, **kwargs)
29        else:
30            client = OAuth2Client(source, self.request, **kwargs)
31        LOGGER.debug("Using client for oauth request", client=client)
32        return client

Get instance of the OAuth client for this source.