diff --git a/hermes_cli/dashboard_auth/middleware.py b/hermes_cli/dashboard_auth/middleware.py index 2c5f5b4f7b95..2e2eab399d8d 100644 --- a/hermes_cli/dashboard_auth/middleware.py +++ b/hermes_cli/dashboard_auth/middleware.py @@ -182,9 +182,16 @@ def _auto_sso_response(request: Request) -> Response | None: # Zero → nothing to redirect to. Two+ → user must choose at /login. return None + provider = providers[0] + + # Password-only providers (e.g. BasicAuthProvider) don't support the + # OAuth redirect dance that /auth/login initiates. Fall through to + # the normal /login interstitial which renders a password form. + if getattr(provider, "supports_password", False): + return None + from hermes_cli.dashboard_auth.prefix import prefix_from_request - provider = providers[0] prefix = prefix_from_request(request) next_param = _safe_next_target(request) from urllib.parse import quote