fix: Ein unerreichbarer Anmeldedienst zeigte eine Seite mit rohem JSON
Auf "Mit Authentik anmelden" folgt der BROWSER einem Link – da steht kein
fetch(), das eine Fehlerantwort auswerten koennte. Scheiterte der Aufruf des
Anmeldedienstes (Tippfehler in der Discovery-Adresse, Name nicht aufloesbar),
landete der Nutzer auf einer weissen Seite mit {"detail": ...} und musste
zurueckdruecken.
Jetzt geht es zurueck in die Oberflaeche, mit dem Grund in der Adresse – genau
wie bei der Rueckkehr vom Anbieter. Beim Anmelden auf die Login-Seite, beim
Verknuepfen auf "Mein Konto".
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
bd2c623136
commit
62cb6a017c
@@ -465,3 +465,21 @@ def test_ohne_einstellung_kommt_die_adresse_aus_der_anfrage(client, anbieter):
|
||||
r = client.get("/api/auth/oidc/authentik/start", follow_redirects=False)
|
||||
frage = parse_qs(urlparse(r.headers["location"]).query)
|
||||
assert frage["redirect_uri"][0].endswith("/api/auth/oidc/authentik/callback")
|
||||
|
||||
|
||||
def test_unerreichbarer_anbieter_zeigt_keine_json_seite(client, anbieter, monkeypatch):
|
||||
"""Hier steht ein Browser, der einem Link gefolgt ist. Eine Fehlerantwort
|
||||
waere eine Seite mit rohem JSON – der Grund gehoert in die Oberflaeche."""
|
||||
from app.services import oidc as oidc_service
|
||||
|
||||
def kaputt(*a, **kw):
|
||||
raise oidc_service.OidcFehler("Der Anmeldedienst ist nicht erreichbar: "
|
||||
"[Errno -2] Name or service not known")
|
||||
|
||||
monkeypatch.setattr("app.services.oidc.start", kaputt)
|
||||
r = client.get("/api/auth/oidc/authentik/start", follow_redirects=False)
|
||||
assert r.status_code == 303, r.text
|
||||
ziel = r.headers["location"]
|
||||
assert ziel.startswith("/login"), ziel
|
||||
assert "oidc_error" in ziel
|
||||
assert "Name+or+service" in ziel or "Name%20or%20service" in ziel
|
||||
|
||||
Reference in New Issue
Block a user