Browse Source

chore(staff): Add logging to verify user via inputs (#63639)

Adding to https://github.com/getsentry/getsentry/pull/12689
Seiji Chew 1 year ago
parent
commit
a588b21876
1 changed files with 18 additions and 0 deletions
  1. 18 0
      src/sentry/api/endpoints/auth_index.py

+ 18 - 0
src/sentry/api/endpoints/auth_index.py

@@ -29,6 +29,7 @@ from sentry.utils.auth import DISABLE_SSO_CHECK_FOR_LOCAL_DEV, has_completed_sso
 from sentry.utils.settings import is_self_hosted
 
 logger: logging.Logger = logging.getLogger(__name__)
+getsentry_logger = logging.getLogger("getsentry.staff_auth_index")
 
 PREFILLED_SU_MODAL_KEY = "prefilled_su_modal"
 
@@ -74,6 +75,7 @@ class BaseAuthIndexEndpoint(Endpoint):
 
     @staticmethod
     def _verify_user_via_inputs(validator: AuthVerifyValidator, request: Request) -> bool:
+        staff_feature_flag = features.has("auth:enterprise-staff-cookie", actor=request.user)
         # See if we have a u2f challenge/response
         if "challenge" in validator.validated_data and "response" in validator.validated_data:
             try:
@@ -83,6 +85,17 @@ class BaseAuthIndexEndpoint(Endpoint):
                 challenge = json.loads(validator.validated_data["challenge"])
                 response = json.loads(validator.validated_data["response"])
                 authenticated = interface.validate_response(request, challenge, response)
+                if staff_feature_flag:
+                    getsentry_logger.info(
+                        "verify.user.inputs",
+                        extra={
+                            "user": request.user.id,
+                            "interface": interface,
+                            "challenge": challenge,
+                            "response": response,
+                            "authenticated": authenticated,
+                        },
+                    )
                 if not authenticated:
                     logger.warning(
                         "u2f_authentication.verification_failed",
@@ -109,6 +122,11 @@ class BaseAuthIndexEndpoint(Endpoint):
             if authenticated:
                 metrics.incr("auth.password.success", sample_rate=1.0, skip_internal=False)
             return authenticated
+        if staff_feature_flag:
+            getsentry_logger.error(
+                "verify.user.inputs.failed",
+                extra={"user": request.user.id, "validator": validator.validated_data},
+            )
         return False