From 5111e8cefa583abc630938ba90c7671cb1ff4806 Mon Sep 17 00:00:00 2001 From: gabdevele Date: Thu, 18 Jun 2026 14:26:44 +0200 Subject: [PATCH] fix: update error handling in Visione redirect and callback views for consistency --- relying_party/relying_party/rp_overrides.py | 38 ++++++++++----------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/relying_party/relying_party/rp_overrides.py b/relying_party/relying_party/rp_overrides.py index e072d9b..9764cfd 100644 --- a/relying_party/relying_party/rp_overrides.py +++ b/relying_party/relying_party/rp_overrides.py @@ -34,7 +34,7 @@ def _visione_error_redirect(request, error, error_description="", status=302): if frontend_redirect_uri: params = { "state": request.session.get("visione_state", ""), - "error": error, + "cie_error": error, } if error_description: params["error_description"] = error_description @@ -49,7 +49,7 @@ class VisioneRpBeginView(SpidCieOidcRpBeginView): if getattr(response, "status_code", None) and response.status_code >= 400: frontend_redirect = _visione_error_redirect( request, - "request_rejected", + "failed", "Authentication request rejected", ) if frontend_redirect: @@ -76,7 +76,7 @@ class VisioneRpCallbackView(SpidCieOidcRpCallbackView): if "error" in request.GET and _visione_redirect_uri(request): return _visione_error_redirect( request, - request.GET.get("error", "invalid_request"), + request.GET.get("error", "failed"), request.GET.get("error_description", ""), ) request_args = {k: v for k, v in request.GET.items()} @@ -90,13 +90,13 @@ class VisioneRpCallbackView(SpidCieOidcRpCallbackView): except ValidationException: return _visione_error_redirect( request, - "invalid_request", + "verification_error", "Authn response object validation failed", ) or render( request, self.error_template, { - "error": "invalid_request", + "error": "verification_error", "error_description": "Authn response object validation failed", **visione_rp_error_context(request), }, @@ -106,13 +106,13 @@ class VisioneRpCallbackView(SpidCieOidcRpCallbackView): if not authz: return _visione_error_redirect( request, - "unauthorized_request", + "invalid_session", "Authentication not found", ) or render( request, self.error_template, { - "error": "unauthorized request", + "error": "invalid_session", "error_description": _("Authentication not found"), **visione_rp_error_context(request), }, @@ -123,13 +123,13 @@ class VisioneRpCallbackView(SpidCieOidcRpCallbackView): if request.GET.get("iss") and request.GET["iss"] != authz.provider_id: return _visione_error_redirect( request, - "invalid_request", + "verification_error", "authn response validation failed: mixups attack prevention.", ) or render( request, self.error_template, { - "error": "invalid request", + "error": "verification_error", "error_description": _( "authn response validation failed: mixups attack prevention." ), @@ -146,13 +146,13 @@ class VisioneRpCallbackView(SpidCieOidcRpCallbackView): if not self.rp_conf: return _visione_error_redirect( request, - "invalid_request", + "verification_error", "Relying party not found", ) or render( request, self.error_template, { - "error": "invalid request", + "error": "verification_error", "error_description": _("Relying party not found"), **visione_rp_error_context(request), }, @@ -173,13 +173,13 @@ class VisioneRpCallbackView(SpidCieOidcRpCallbackView): if not token_response: return _visione_error_redirect( request, - "invalid_token_response", + "verification_error", "Token response seems not to be valid", ) or render( request, self.error_template, { - "error": "invalid token response", + "error": "verification_error", "error_description": _("Token response seems not to be valid"), **visione_rp_error_context(request), }, @@ -195,13 +195,13 @@ class VisioneRpCallbackView(SpidCieOidcRpCallbackView): except ValidationException: return _visione_error_redirect( request, - "invalid_request", + "verification_error", "Token response object validation failed", ) or render( request, self.error_template, { - "error": "invalid_request", + "error": "verification_error", "error_description": "Token response object validation failed", **visione_rp_error_context(request), }, @@ -216,13 +216,13 @@ class VisioneRpCallbackView(SpidCieOidcRpCallbackView): if not op_ac_jwk or not op_id_jwk: return _visione_error_redirect( request, - "invalid_token", + "verification_error", "Authentication token seems not to be valid.", ) or render( request, self.error_template, { - "error": "invalid_token", + "error": "verification_error", "error_description": _("Authentication token seems not to be valid."), **visione_rp_error_context(request), }, @@ -238,13 +238,13 @@ class VisioneRpCallbackView(SpidCieOidcRpCallbackView): logger.warning("Token validation error: %s", exc) return _visione_error_redirect( request, - "token_verification_failed", + "verification_error", "Authentication token validation error.", ) or render( request, self.error_template, { - "error": "token verification failed", + "error": "verification_error", "error_description": _("Authentication token validation error."), **visione_rp_error_context(request), },