core: remove deprecated sentry-sdk method usage (#10648)
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
This commit is contained in:
		| @ -5,7 +5,7 @@ from typing import Any | ||||
| from django.db.models import F, Q | ||||
| from django.db.models import Value as V | ||||
| from django.http.request import HttpRequest | ||||
| from sentry_sdk.hub import Hub | ||||
| from sentry_sdk import get_current_span | ||||
|  | ||||
| from authentik import get_full_version | ||||
| from authentik.brands.models import Brand | ||||
| @ -33,7 +33,7 @@ def context_processor(request: HttpRequest) -> dict[str, Any]: | ||||
|     brand = getattr(request, "brand", DEFAULT_BRAND) | ||||
|     tenant = getattr(request, "tenant", Tenant()) | ||||
|     trace = "" | ||||
|     span = Hub.current.scope.span | ||||
|     span = get_current_span() | ||||
|     if span: | ||||
|         trace = span.to_traceparent() | ||||
|     return { | ||||
|  | ||||
| @ -5,7 +5,7 @@ from typing import TYPE_CHECKING, Optional, TypedDict | ||||
| from django.http import HttpRequest | ||||
| from geoip2.errors import GeoIP2Error | ||||
| from geoip2.models import ASN | ||||
| from sentry_sdk import Hub | ||||
| from sentry_sdk import start_span | ||||
|  | ||||
| from authentik.events.context_processors.mmdb import MMDBContextProcessor | ||||
| from authentik.lib.config import CONFIG | ||||
| @ -48,7 +48,7 @@ class ASNContextProcessor(MMDBContextProcessor): | ||||
|  | ||||
|     def asn(self, ip_address: str) -> ASN | None: | ||||
|         """Wrapper for Reader.asn""" | ||||
|         with Hub.current.start_span( | ||||
|         with start_span( | ||||
|             op="authentik.events.asn.asn", | ||||
|             description=ip_address, | ||||
|         ): | ||||
|  | ||||
| @ -5,7 +5,7 @@ from typing import TYPE_CHECKING, Optional, TypedDict | ||||
| from django.http import HttpRequest | ||||
| from geoip2.errors import GeoIP2Error | ||||
| from geoip2.models import City | ||||
| from sentry_sdk.hub import Hub | ||||
| from sentry_sdk import start_span | ||||
|  | ||||
| from authentik.events.context_processors.mmdb import MMDBContextProcessor | ||||
| from authentik.lib.config import CONFIG | ||||
| @ -49,7 +49,7 @@ class GeoIPContextProcessor(MMDBContextProcessor): | ||||
|  | ||||
|     def city(self, ip_address: str) -> City | None: | ||||
|         """Wrapper for Reader.city""" | ||||
|         with Hub.current.start_span( | ||||
|         with start_span( | ||||
|             op="authentik.events.geo.city", | ||||
|             description=ip_address, | ||||
|         ): | ||||
|  | ||||
| @ -5,7 +5,7 @@ from typing import Any | ||||
|  | ||||
| from django.core.cache import cache | ||||
| from django.http import HttpRequest | ||||
| from sentry_sdk.hub import Hub | ||||
| from sentry_sdk import start_span | ||||
| from sentry_sdk.tracing import Span | ||||
| from structlog.stdlib import BoundLogger, get_logger | ||||
|  | ||||
| @ -151,9 +151,7 @@ class FlowPlanner: | ||||
|     def plan(self, request: HttpRequest, default_context: dict[str, Any] | None = None) -> FlowPlan: | ||||
|         """Check each of the flows' policies, check policies for each stage with PolicyBinding | ||||
|         and return ordered list""" | ||||
|         with Hub.current.start_span( | ||||
|             op="authentik.flow.planner.plan", description=self.flow.slug | ||||
|         ) as span: | ||||
|         with start_span(op="authentik.flow.planner.plan", description=self.flow.slug) as span: | ||||
|             span: Span | ||||
|             span.set_data("flow", self.flow) | ||||
|             span.set_data("request", request) | ||||
| @ -218,7 +216,7 @@ class FlowPlanner: | ||||
|         """Build flow plan by checking each stage in their respective | ||||
|         order and checking the applied policies""" | ||||
|         with ( | ||||
|             Hub.current.start_span( | ||||
|             start_span( | ||||
|                 op="authentik.flow.planner.build_plan", | ||||
|                 description=self.flow.slug, | ||||
|             ) as span, | ||||
|  | ||||
| @ -10,7 +10,7 @@ from django.urls import reverse | ||||
| from django.views.generic.base import View | ||||
| from prometheus_client import Histogram | ||||
| from rest_framework.request import Request | ||||
| from sentry_sdk.hub import Hub | ||||
| from sentry_sdk import start_span | ||||
| from structlog.stdlib import BoundLogger, get_logger | ||||
|  | ||||
| from authentik.core.models import User | ||||
| @ -123,7 +123,7 @@ class ChallengeStageView(StageView): | ||||
|                 ) | ||||
|                 return self.executor.restart_flow(keep_context) | ||||
|             with ( | ||||
|                 Hub.current.start_span( | ||||
|                 start_span( | ||||
|                     op="authentik.flow.stage.challenge_invalid", | ||||
|                     description=self.__class__.__name__, | ||||
|                 ), | ||||
| @ -133,7 +133,7 @@ class ChallengeStageView(StageView): | ||||
|             ): | ||||
|                 return self.challenge_invalid(challenge) | ||||
|         with ( | ||||
|             Hub.current.start_span( | ||||
|             start_span( | ||||
|                 op="authentik.flow.stage.challenge_valid", | ||||
|                 description=self.__class__.__name__, | ||||
|             ), | ||||
| @ -159,7 +159,7 @@ class ChallengeStageView(StageView): | ||||
|  | ||||
|     def _get_challenge(self, *args, **kwargs) -> Challenge: | ||||
|         with ( | ||||
|             Hub.current.start_span( | ||||
|             start_span( | ||||
|                 op="authentik.flow.stage.get_challenge", | ||||
|                 description=self.__class__.__name__, | ||||
|             ), | ||||
| @ -172,7 +172,7 @@ class ChallengeStageView(StageView): | ||||
|             except StageInvalidException as exc: | ||||
|                 self.logger.debug("Got StageInvalidException", exc=exc) | ||||
|                 return self.executor.stage_invalid() | ||||
|         with Hub.current.start_span( | ||||
|         with start_span( | ||||
|             op="authentik.flow.stage._get_challenge", | ||||
|             description=self.__class__.__name__, | ||||
|         ): | ||||
|  | ||||
| @ -18,9 +18,8 @@ from drf_spectacular.types import OpenApiTypes | ||||
| from drf_spectacular.utils import OpenApiParameter, PolymorphicProxySerializer, extend_schema | ||||
| from rest_framework.permissions import AllowAny | ||||
| from rest_framework.views import APIView | ||||
| from sentry_sdk import capture_exception | ||||
| from sentry_sdk import capture_exception, start_span | ||||
| from sentry_sdk.api import set_tag | ||||
| from sentry_sdk.hub import Hub | ||||
| from structlog.stdlib import BoundLogger, get_logger | ||||
|  | ||||
| from authentik.brands.models import Brand | ||||
| @ -154,9 +153,7 @@ class FlowExecutorView(APIView): | ||||
|         return plan | ||||
|  | ||||
|     def dispatch(self, request: HttpRequest, flow_slug: str) -> HttpResponse: | ||||
|         with Hub.current.start_span( | ||||
|             op="authentik.flow.executor.dispatch", description=self.flow.slug | ||||
|         ) as span: | ||||
|         with start_span(op="authentik.flow.executor.dispatch", description=self.flow.slug) as span: | ||||
|             span.set_data("authentik Flow", self.flow.slug) | ||||
|             get_params = QueryDict(request.GET.get(QS_QUERY, "")) | ||||
|             if QS_KEY_TOKEN in get_params: | ||||
| @ -274,7 +271,7 @@ class FlowExecutorView(APIView): | ||||
|         ) | ||||
|         try: | ||||
|             with ( | ||||
|                 Hub.current.start_span( | ||||
|                 start_span( | ||||
|                     op="authentik.flow.executor.stage", | ||||
|                     description=class_path, | ||||
|                 ) as span, | ||||
| @ -325,7 +322,7 @@ class FlowExecutorView(APIView): | ||||
|         ) | ||||
|         try: | ||||
|             with ( | ||||
|                 Hub.current.start_span( | ||||
|                 start_span( | ||||
|                     op="authentik.flow.executor.stage", | ||||
|                     description=class_path, | ||||
|                 ) as span, | ||||
|  | ||||
| @ -13,7 +13,7 @@ from django.core.exceptions import FieldError | ||||
| from django.utils.text import slugify | ||||
| from guardian.shortcuts import get_anonymous_user | ||||
| from rest_framework.serializers import ValidationError | ||||
| from sentry_sdk.hub import Hub | ||||
| from sentry_sdk import start_span | ||||
| from sentry_sdk.tracing import Span | ||||
| from structlog.stdlib import get_logger | ||||
|  | ||||
| @ -195,7 +195,7 @@ class BaseEvaluator: | ||||
|         """Parse and evaluate expression. If the syntax is incorrect, a SyntaxError is raised. | ||||
|         If any exception is raised during execution, it is raised. | ||||
|         The result is returned without any type-checking.""" | ||||
|         with Hub.current.start_span(op="authentik.lib.evaluator.evaluate") as span: | ||||
|         with start_span(op="authentik.lib.evaluator.evaluate") as span: | ||||
|             span: Span | ||||
|             span.description = self._filename | ||||
|             span.set_data("expression", expression_source) | ||||
|  | ||||
| @ -68,7 +68,7 @@ def sentry_init(**sentry_init_kwargs): | ||||
|         integrations=[ | ||||
|             ArgvIntegration(), | ||||
|             StdlibIntegration(), | ||||
|             DjangoIntegration(transaction_style="function_name"), | ||||
|             DjangoIntegration(transaction_style="function_name", cache_spans=True), | ||||
|             CeleryIntegration(), | ||||
|             RedisIntegration(), | ||||
|             ThreadingIntegration(propagate_hub=True), | ||||
|  | ||||
| @ -7,7 +7,7 @@ from time import perf_counter | ||||
|  | ||||
| from django.core.cache import cache | ||||
| from django.http import HttpRequest | ||||
| from sentry_sdk.hub import Hub | ||||
| from sentry_sdk import start_span | ||||
| from sentry_sdk.tracing import Span | ||||
| from structlog.stdlib import BoundLogger, get_logger | ||||
|  | ||||
| @ -111,7 +111,7 @@ class PolicyEngine: | ||||
|     def build(self) -> "PolicyEngine": | ||||
|         """Build wrapper which monitors performance""" | ||||
|         with ( | ||||
|             Hub.current.start_span( | ||||
|             start_span( | ||||
|                 op="authentik.policy.engine.build", | ||||
|                 description=self.__pbm, | ||||
|             ) as span, | ||||
|  | ||||
| @ -4,7 +4,7 @@ from multiprocessing import get_context | ||||
| from multiprocessing.connection import Connection | ||||
|  | ||||
| from django.core.cache import cache | ||||
| from sentry_sdk.hub import Hub | ||||
| from sentry_sdk import start_span | ||||
| from sentry_sdk.tracing import Span | ||||
| from structlog.stdlib import get_logger | ||||
|  | ||||
| @ -121,7 +121,7 @@ class PolicyProcess(PROCESS_CLASS): | ||||
|     def profiling_wrapper(self): | ||||
|         """Run with profiling enabled""" | ||||
|         with ( | ||||
|             Hub.current.start_span( | ||||
|             start_span( | ||||
|                 op="authentik.policy.process.execute", | ||||
|             ) as span, | ||||
|             HIST_POLICIES_EXECUTION_TIME.labels( | ||||
|  | ||||
| @ -17,7 +17,7 @@ from django.views import View | ||||
| from django.views.decorators.csrf import csrf_exempt | ||||
| from guardian.shortcuts import get_anonymous_user | ||||
| from jwt import PyJWK, PyJWT, PyJWTError, decode | ||||
| from sentry_sdk.hub import Hub | ||||
| from sentry_sdk import start_span | ||||
| from structlog.stdlib import get_logger | ||||
|  | ||||
| from authentik.core.middleware import CTX_AUTH_VIA | ||||
| @ -118,7 +118,7 @@ class TokenParams: | ||||
|         ) | ||||
|  | ||||
|     def __check_policy_access(self, app: Application, request: HttpRequest, **kwargs): | ||||
|         with Hub.current.start_span( | ||||
|         with start_span( | ||||
|             op="authentik.providers.oauth2.token.policy", | ||||
|         ): | ||||
|             user = self.user if self.user else get_anonymous_user() | ||||
| @ -151,22 +151,22 @@ class TokenParams: | ||||
|                 raise TokenError("invalid_client") | ||||
|  | ||||
|         if self.grant_type == GRANT_TYPE_AUTHORIZATION_CODE: | ||||
|             with Hub.current.start_span( | ||||
|             with start_span( | ||||
|                 op="authentik.providers.oauth2.post.parse.code", | ||||
|             ): | ||||
|                 self.__post_init_code(raw_code, request) | ||||
|         elif self.grant_type == GRANT_TYPE_REFRESH_TOKEN: | ||||
|             with Hub.current.start_span( | ||||
|             with start_span( | ||||
|                 op="authentik.providers.oauth2.post.parse.refresh", | ||||
|             ): | ||||
|                 self.__post_init_refresh(raw_token, request) | ||||
|         elif self.grant_type in [GRANT_TYPE_CLIENT_CREDENTIALS, GRANT_TYPE_PASSWORD]: | ||||
|             with Hub.current.start_span( | ||||
|             with start_span( | ||||
|                 op="authentik.providers.oauth2.post.parse.client_credentials", | ||||
|             ): | ||||
|                 self.__post_init_client_credentials(request) | ||||
|         elif self.grant_type == GRANT_TYPE_DEVICE_CODE: | ||||
|             with Hub.current.start_span( | ||||
|             with start_span( | ||||
|                 op="authentik.providers.oauth2.post.parse.device_code", | ||||
|             ): | ||||
|                 self.__post_init_device_code(request) | ||||
| @ -508,7 +508,7 @@ class TokenView(View): | ||||
|     def post(self, request: HttpRequest) -> HttpResponse: | ||||
|         """Generate tokens for clients""" | ||||
|         try: | ||||
|             with Hub.current.start_span( | ||||
|             with start_span( | ||||
|                 op="authentik.providers.oauth2.post.parse", | ||||
|             ): | ||||
|                 client_id, client_secret = extract_client_auth(request) | ||||
| @ -519,7 +519,7 @@ class TokenView(View): | ||||
|                 CTX_AUTH_VIA.set("oauth_client_secret") | ||||
|                 self.params = TokenParams.parse(request, self.provider, client_id, client_secret) | ||||
|  | ||||
|             with Hub.current.start_span( | ||||
|             with start_span( | ||||
|                 op="authentik.providers.oauth2.post.response", | ||||
|             ): | ||||
|                 if self.params.grant_type == GRANT_TYPE_AUTHORIZATION_CODE: | ||||
|  | ||||
| @ -17,7 +17,7 @@ from django.middleware.csrf import CsrfViewMiddleware as UpstreamCsrfViewMiddlew | ||||
| from django.utils.cache import patch_vary_headers | ||||
| from django.utils.http import http_date | ||||
| from jwt import PyJWTError, decode, encode | ||||
| from sentry_sdk.hub import Hub | ||||
| from sentry_sdk import Scope | ||||
| from structlog.stdlib import get_logger | ||||
|  | ||||
| from authentik.core.models import Token, TokenIntents, User, UserTypes | ||||
| @ -221,11 +221,9 @@ class ClientIPMiddleware: | ||||
|             ) | ||||
|             return None | ||||
|         # Update sentry scope to include correct IP | ||||
|         user = Hub.current.scope._user | ||||
|         if not user: | ||||
|             user = {} | ||||
|         user = Scope.get_isolation_scope()._user or {} | ||||
|         user["ip_address"] = delegated_ip | ||||
|         Hub.current.scope.set_user(user) | ||||
|         Scope.get_isolation_scope().set_user(user) | ||||
|         # Set the outpost service account on the request | ||||
|         setattr(request, self.request_attr_outpost_user, user) | ||||
|         return delegated_ip | ||||
|  | ||||
| @ -12,7 +12,7 @@ from django.utils.translation import gettext as _ | ||||
| from drf_spectacular.utils import PolymorphicProxySerializer, extend_schema_field | ||||
| from rest_framework.fields import BooleanField, CharField, ChoiceField, DictField, ListField | ||||
| from rest_framework.serializers import ValidationError | ||||
| from sentry_sdk.hub import Hub | ||||
| from sentry_sdk import start_span | ||||
|  | ||||
| from authentik.core.api.utils import PassiveSerializer | ||||
| from authentik.core.models import Application, Source, User | ||||
| @ -94,7 +94,7 @@ class IdentificationChallengeResponse(ChallengeResponse): | ||||
|  | ||||
|         pre_user = self.stage.get_user(uid_field) | ||||
|         if not pre_user: | ||||
|             with Hub.current.start_span( | ||||
|             with start_span( | ||||
|                 op="authentik.stages.identification.validate_invalid_wait", | ||||
|                 description="Sleep random time on invalid user identifier", | ||||
|             ): | ||||
| @ -136,7 +136,7 @@ class IdentificationChallengeResponse(ChallengeResponse): | ||||
|         if not password: | ||||
|             self.stage.logger.warning("Password not set for ident+auth attempt") | ||||
|         try: | ||||
|             with Hub.current.start_span( | ||||
|             with start_span( | ||||
|                 op="authentik.stages.identification.authenticate", | ||||
|                 description="User authenticate call (combo stage)", | ||||
|             ): | ||||
|  | ||||
| @ -10,7 +10,7 @@ from django.urls import reverse | ||||
| from django.utils.translation import gettext as _ | ||||
| from rest_framework.exceptions import ValidationError | ||||
| from rest_framework.fields import BooleanField, CharField | ||||
| from sentry_sdk.hub import Hub | ||||
| from sentry_sdk import start_span | ||||
| from structlog.stdlib import get_logger | ||||
|  | ||||
| from authentik.core.models import User | ||||
| @ -47,7 +47,7 @@ def authenticate( | ||||
|             LOGGER.warning("Failed to import backend", path=backend_path) | ||||
|             continue | ||||
|         LOGGER.debug("Attempting authentication...", backend=backend_path) | ||||
|         with Hub.current.start_span( | ||||
|         with start_span( | ||||
|             op="authentik.stages.password.authenticate", | ||||
|             description=backend_path, | ||||
|         ): | ||||
| @ -99,7 +99,7 @@ class PasswordChallengeResponse(ChallengeResponse): | ||||
|             "username": pending_user.username, | ||||
|         } | ||||
|         try: | ||||
|             with Hub.current.start_span( | ||||
|             with start_span( | ||||
|                 op="authentik.stages.password.authenticate", | ||||
|                 description="User authenticate call", | ||||
|             ): | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 Jens L.
					Jens L.