fix: update error handling in Visione redirect and callback views for consistency
This commit is contained in:
@@ -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),
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user