fix: update error handling in Visione redirect and callback views for consistency

This commit is contained in:
gabdevele
2026-06-18 14:26:44 +02:00 Unverified
parent 9b99ed0597
commit 5111e8cefa
+19 -19
View File
@@ -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),
},