From cbb2f2f81452a97fddbdcc1f6010fbc85682e3b3 Mon Sep 17 00:00:00 2001
From: Erlend Hamnaberg <erlend@hamnaberg.net>
Date: Thu, 29 Nov 2018 07:42:20 +0000
Subject: [PATCH] Redirect to application after login is complete

---
 src/main/java/org/keycloak/protocol/cas/endpoints/LogoutEndpoint.java |   12 ++++--------
 1 files changed, 4 insertions(+), 8 deletions(-)

diff --git a/src/main/java/org/keycloak/protocol/cas/endpoints/LogoutEndpoint.java b/src/main/java/org/keycloak/protocol/cas/endpoints/LogoutEndpoint.java
index b29588f..09a0469 100644
--- a/src/main/java/org/keycloak/protocol/cas/endpoints/LogoutEndpoint.java
+++ b/src/main/java/org/keycloak/protocol/cas/endpoints/LogoutEndpoint.java
@@ -20,7 +20,6 @@
 import javax.ws.rs.core.Context;
 import javax.ws.rs.core.HttpHeaders;
 import javax.ws.rs.core.Response;
-import javax.ws.rs.core.UriInfo;
 
 public class LogoutEndpoint {
     private static final Logger logger = Logger.getLogger(LogoutEndpoint.class);
@@ -36,9 +35,6 @@
 
     @Context
     private HttpHeaders headers;
-
-    @Context
-    private UriInfo uriInfo;
 
     private RealmModel realm;
     private EventBuilder event;
@@ -62,11 +58,11 @@
             if (redirectUri != null) userSession.setNote(CASLoginProtocol.LOGOUT_REDIRECT_URI, redirectUri);
 
             logger.debug("Initiating CAS browser logout");
-            Response response =  AuthenticationManager.browserLogout(session, realm, authResult.getSession(), uriInfo, clientConnection, headers);
+            Response response =  AuthenticationManager.browserLogout(session, realm, authResult.getSession(), session.getContext().getUri(), clientConnection, headers, null);
             logger.debug("finishing CAS browser logout");
             return response;
         }
-        return ErrorPage.error(session, Messages.FAILED_LOGOUT);
+        return ErrorPage.error(session, null, Response.Status.BAD_REQUEST, Messages.FAILED_LOGOUT);
     }
 
     private void checkClient(String service) {
@@ -76,10 +72,10 @@
 
         client = realm.getClients().stream()
                 .filter(c -> CASLoginProtocol.LOGIN_PROTOCOL.equals(c.getProtocol()))
-                .filter(c -> RedirectUtils.verifyRedirectUri(uriInfo, service, realm, c) != null)
+                .filter(c -> RedirectUtils.verifyRedirectUri(session.getContext().getUri(), service, realm, c) != null)
                 .findFirst().orElse(null);
         if (client != null) {
-            redirectUri = RedirectUtils.verifyRedirectUri(uriInfo, service, realm, client);
+            redirectUri = RedirectUtils.verifyRedirectUri(session.getContext().getUri(), service, realm, client);
 
             session.getContext().setClient(client);
         }

--
Gitblit v1.9.1