From b92028de86e6b25a87c12ff34ae00338a455308d Mon Sep 17 00:00:00 2001
From: Laurent Meunier <lme@atolcd.com>
Date: Fri, 21 Jun 2024 11:50:28 +0000
Subject: [PATCH] Fix NPE in backchannel logout

---
 src/main/java/org/keycloak/protocol/cas/CASLoginProtocolService.java |   30 +++++-------------------------
 1 files changed, 5 insertions(+), 25 deletions(-)

diff --git a/src/main/java/org/keycloak/protocol/cas/CASLoginProtocolService.java b/src/main/java/org/keycloak/protocol/cas/CASLoginProtocolService.java
index e8cbb39..a985901 100644
--- a/src/main/java/org/keycloak/protocol/cas/CASLoginProtocolService.java
+++ b/src/main/java/org/keycloak/protocol/cas/CASLoginProtocolService.java
@@ -1,12 +1,8 @@
 package org.keycloak.protocol.cas;
 
 import jakarta.ws.rs.Path;
-import jakarta.ws.rs.core.Context;
-import jakarta.ws.rs.core.HttpHeaders;
 import jakarta.ws.rs.core.Response;
 import jakarta.ws.rs.core.UriBuilder;
-import org.jboss.resteasy.spi.HttpRequest;
-import org.jboss.resteasy.spi.ResteasyProviderFactory;
 import org.keycloak.events.EventBuilder;
 import org.keycloak.models.KeycloakSession;
 import org.keycloak.models.RealmModel;
@@ -17,12 +13,6 @@
     private KeycloakSession session;
     private RealmModel realm;
     private EventBuilder event;
-
-    @Context
-    private HttpHeaders headers;
-
-    @Context
-    private HttpRequest request;
 
     public CASLoginProtocolService(KeycloakSession session, EventBuilder event) {
         this.session = session;
@@ -36,37 +26,27 @@
 
     @Path("login")
     public Object login() {
-        AuthorizationEndpoint endpoint = new AuthorizationEndpoint(session, event);
-        ResteasyProviderFactory.getInstance().injectProperties(endpoint);
-        return endpoint;
+        return new AuthorizationEndpoint(session, event);
     }
 
     @Path("logout")
     public Object logout() {
-        LogoutEndpoint endpoint = new LogoutEndpoint(realm);
-        ResteasyProviderFactory.getInstance().injectProperties(endpoint);
-        return endpoint;
+        return new LogoutEndpoint(session, realm);
     }
 
     @Path("validate")
     public Object validate() {
-        ValidateEndpoint endpoint = new ValidateEndpoint(realm, event);
-        ResteasyProviderFactory.getInstance().injectProperties(endpoint);
-        return endpoint;
+        return new ValidateEndpoint(session, realm, event);
     }
 
     @Path("samlValidate")
     public Object validateSaml11() {
-        SamlValidateEndpoint endpoint = new SamlValidateEndpoint(realm, event);
-        ResteasyProviderFactory.getInstance().injectProperties(endpoint);
-        return endpoint;
+        return new SamlValidateEndpoint(session, realm, event);
     }
 
     @Path("serviceValidate")
     public Object serviceValidate() {
-        ServiceValidateEndpoint endpoint = new ServiceValidateEndpoint(realm, event);
-        ResteasyProviderFactory.getInstance().injectProperties(endpoint);
-        return endpoint;
+        return new ServiceValidateEndpoint(session, realm, event);
     }
 
     @Path("proxyValidate")

--
Gitblit v1.9.1