From 32997b7c31fc3b27a8df6911e0f8e8e1bcc58437 Mon Sep 17 00:00:00 2001
From: Jakub Malinowski <jakub@malinowski.net.pl>
Date: Wed, 30 Oct 2024 09:05:21 +0000
Subject: [PATCH] #129 Client session note service ticket fix

---
 src/main/java/org/keycloak/protocol/cas/endpoints/SamlValidateEndpoint.java |   22 +++++++++++++---------
 1 files changed, 13 insertions(+), 9 deletions(-)

diff --git a/src/main/java/org/keycloak/protocol/cas/endpoints/SamlValidateEndpoint.java b/src/main/java/org/keycloak/protocol/cas/endpoints/SamlValidateEndpoint.java
index 74730ee..211a0c9 100644
--- a/src/main/java/org/keycloak/protocol/cas/endpoints/SamlValidateEndpoint.java
+++ b/src/main/java/org/keycloak/protocol/cas/endpoints/SamlValidateEndpoint.java
@@ -1,8 +1,14 @@
 package org.keycloak.protocol.cas.endpoints;
 
+import jakarta.ws.rs.Consumes;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.core.MultivaluedMap;
+import jakarta.ws.rs.core.Response;
 import org.keycloak.dom.saml.v1.protocol.SAML11ResponseType;
 import org.keycloak.events.EventBuilder;
 import org.keycloak.events.EventType;
+import org.keycloak.models.KeycloakSession;
 import org.keycloak.models.RealmModel;
 import org.keycloak.models.UserModel;
 import org.keycloak.protocol.cas.CASLoginProtocol;
@@ -12,24 +18,22 @@
 import org.keycloak.services.Urls;
 import org.xml.sax.InputSource;
 
-import javax.ws.rs.Consumes;
-import javax.ws.rs.POST;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MultivaluedMap;
-import javax.ws.rs.core.Response;
 import javax.xml.namespace.NamespaceContext;
 import javax.xml.xpath.XPath;
 import javax.xml.xpath.XPathExpression;
 import javax.xml.xpath.XPathExpressionException;
 import javax.xml.xpath.XPathFactory;
 import java.io.StringReader;
-import java.util.*;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Optional;
 
 import static org.keycloak.protocol.cas.CASLoginProtocol.TARGET_PARAM;
 
 public class SamlValidateEndpoint extends AbstractValidateEndpoint {
-    public SamlValidateEndpoint(RealmModel realm, EventBuilder event) {
-        super(realm, event.event(EventType.CODE_TO_TOKEN));
+    public SamlValidateEndpoint(KeycloakSession session, RealmModel realm, EventBuilder event) {
+        super(session, realm, event.event(EventType.CODE_TO_TOKEN));
     }
 
     @POST
@@ -52,7 +56,7 @@
             String issuer = Urls.realmIssuer(session.getContext().getUri().getBaseUri(), realm.getName());
             String ticket = getTicket(input);
 
-            checkTicket(ticket, renew);
+            checkTicket(ticket, CASLoginProtocol.SERVICE_TICKET_PREFIX, renew);
             UserModel user = clientSession.getUserSession().getUser();
 
             Map<String, Object> attributes = getUserAttributes();

--
Gitblit v1.9.1