From f2312c5b8c95a9c4bf3115cc1094341528e9df0c Mon Sep 17 00:00:00 2001
From: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Date: Mon, 19 Aug 2024 08:47:11 +0000
Subject: [PATCH] Update to Keycloak 25.0.3

---
 src/main/java/org/keycloak/protocol/cas/endpoints/ValidateEndpoint.java |   25 +++++++++++++------------
 1 files changed, 13 insertions(+), 12 deletions(-)

diff --git a/src/main/java/org/keycloak/protocol/cas/endpoints/ValidateEndpoint.java b/src/main/java/org/keycloak/protocol/cas/endpoints/ValidateEndpoint.java
index 157142f..a3c14a4 100644
--- a/src/main/java/org/keycloak/protocol/cas/endpoints/ValidateEndpoint.java
+++ b/src/main/java/org/keycloak/protocol/cas/endpoints/ValidateEndpoint.java
@@ -1,24 +1,24 @@
 package org.keycloak.protocol.cas.endpoints;
 
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.core.MediaType;
+import jakarta.ws.rs.core.MultivaluedMap;
+import jakarta.ws.rs.core.Response;
 import org.jboss.resteasy.annotations.cache.NoCache;
 import org.keycloak.events.EventBuilder;
 import org.keycloak.events.EventType;
+import org.keycloak.models.KeycloakSession;
 import org.keycloak.models.RealmModel;
 import org.keycloak.protocol.cas.CASLoginProtocol;
 import org.keycloak.protocol.cas.utils.CASValidationException;
-
-import javax.ws.rs.GET;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.MultivaluedMap;
-import javax.ws.rs.core.Response;
 
 public class ValidateEndpoint extends AbstractValidateEndpoint {
 
     private static final String RESPONSE_OK = "yes\n";
     private static final String RESPONSE_FAILED = "no\n";
 
-    public ValidateEndpoint(RealmModel realm, EventBuilder event) {
-        super(realm, event);
+    public ValidateEndpoint(KeycloakSession session, RealmModel realm, EventBuilder event) {
+        super(session, realm, event);
     }
 
     @GET
@@ -26,6 +26,7 @@
     public Response build() {
         MultivaluedMap<String, String> params = session.getContext().getUri().getQueryParameters();
         String service = params.getFirst(CASLoginProtocol.SERVICE_PARAM);
+        String pgtUrl = params.getFirst(CASLoginProtocol.PGTURL_PARAM);
         String ticket = params.getFirst(CASLoginProtocol.TICKET_PARAM);
         boolean renew = params.containsKey(CASLoginProtocol.RENEW_PARAM);
 
@@ -36,7 +37,9 @@
             checkRealm();
             checkClient(service);
 
-            checkTicket(ticket, renew);
+            checkTicket(ticket, CASLoginProtocol.SERVICE_TICKET_PREFIX, renew);
+
+            if (pgtUrl != null) createProxyGrant(pgtUrl);
 
             event.success();
             return successResponse();
@@ -46,10 +49,8 @@
     }
 
     protected Response successResponse() {
-        StringBuilder sb = new StringBuilder(RESPONSE_OK);
-        sb.append(clientSession.getUserSession().getUser().getUsername());
-        sb.append("\n");
-        return Response.ok(sb.toString()).type(MediaType.TEXT_PLAIN).build();
+        String response = RESPONSE_OK + clientSession.getUserSession().getUser().getUsername() + "\n";
+        return Response.ok(response).type(MediaType.TEXT_PLAIN).build();
     }
 
     protected Response errorResponse(CASValidationException e) {

--
Gitblit v1.9.1