From 58cea4fab65777587fbd9902bc6756f9ed44f3fe Mon Sep 17 00:00:00 2001 From: Jacek Kowalski <Jacek@jacekk.info> Date: Sat, 17 Oct 2020 10:03:08 +0000 Subject: [PATCH] Fix CAS gateway option handling --- src/main/java/org/keycloak/protocol/cas/CASLoginProtocol.java | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-) diff --git a/src/main/java/org/keycloak/protocol/cas/CASLoginProtocol.java b/src/main/java/org/keycloak/protocol/cas/CASLoginProtocol.java index 4557c7a..53f0a32 100644 --- a/src/main/java/org/keycloak/protocol/cas/CASLoginProtocol.java +++ b/src/main/java/org/keycloak/protocol/cas/CASLoginProtocol.java @@ -12,6 +12,7 @@ import org.keycloak.protocol.cas.utils.LogoutHelper; import org.keycloak.protocol.oidc.utils.OAuth2Code; import org.keycloak.protocol.oidc.utils.OAuth2CodeParser; +import org.keycloak.services.ErrorPage; import org.keycloak.services.managers.ResourceAdminManager; import org.keycloak.sessions.AuthenticationSessionModel; @@ -111,7 +112,12 @@ @Override public Response sendError(AuthenticationSessionModel authSession, Error error) { - return Response.serverError().entity(error).build(); + if (authSession.getClientNotes().containsKey(CASLoginProtocol.GATEWAY_PARAM)) { + if (error == Error.PASSIVE_INTERACTION_REQUIRED || error == Error.PASSIVE_LOGIN_REQUIRED) { + return Response.status(302).location(URI.create(authSession.getRedirectUri())).build(); + } + } + return ErrorPage.error(session, authSession, Response.Status.INTERNAL_SERVER_ERROR, error.name()); } @Override -- Gitblit v1.9.1