From 755fd78fa0ee0f2a67417a119382c63e02c1091e Mon Sep 17 00:00:00 2001
From: Alexandre Rocha Wendling <alexandrerw@celepar.pr.gov.br>
Date: Tue, 16 Jul 2024 14:15:23 +0000
Subject: [PATCH] Proxy ticket service and proxy ticket validation Proxy endpoints improvements suggested by Jacek Kowalski Add ticket type to storage key Rename isreuse to isReusable Remove "parsing" of "codeUUID" that is String, not UUID Improve error reporting in CAS ticket validation

---
 src/main/java/org/keycloak/protocol/cas/CASLoginProtocolService.java |   56 +++++++++++++++++++-------------------------------------
 1 files changed, 19 insertions(+), 37 deletions(-)

diff --git a/src/main/java/org/keycloak/protocol/cas/CASLoginProtocolService.java b/src/main/java/org/keycloak/protocol/cas/CASLoginProtocolService.java
index 9d3e27d..8d8f944 100644
--- a/src/main/java/org/keycloak/protocol/cas/CASLoginProtocolService.java
+++ b/src/main/java/org/keycloak/protocol/cas/CASLoginProtocolService.java
@@ -1,37 +1,22 @@
 package org.keycloak.protocol.cas;
 
-import org.jboss.resteasy.spi.HttpRequest;
-import org.jboss.resteasy.spi.ResteasyProviderFactory;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.core.UriBuilder;
+
 import org.keycloak.events.EventBuilder;
 import org.keycloak.models.KeycloakSession;
 import org.keycloak.models.RealmModel;
-import org.keycloak.protocol.cas.endpoints.AuthorizationEndpoint;
-import org.keycloak.protocol.cas.endpoints.LogoutEndpoint;
-import org.keycloak.protocol.cas.endpoints.ServiceValidateEndpoint;
-import org.keycloak.protocol.cas.endpoints.ValidateEndpoint;
+import org.keycloak.protocol.cas.endpoints.*;
 import org.keycloak.services.resources.RealmsResource;
 
-import javax.ws.rs.Path;
-import javax.ws.rs.core.*;
-
 public class CASLoginProtocolService {
+    private KeycloakSession session;
     private RealmModel realm;
     private EventBuilder event;
 
-    @Context
-    private UriInfo uriInfo;
-
-    @Context
-    private KeycloakSession session;
-
-    @Context
-    private HttpHeaders headers;
-
-    @Context
-    private HttpRequest request;
-
-    public CASLoginProtocolService(RealmModel realm, EventBuilder event) {
-        this.realm = realm;
+    public CASLoginProtocolService(KeycloakSession session, EventBuilder event) {
+        this.session = session;
+        this.realm = session.getContext().getRealm();
         this.event = event;
     }
 
@@ -41,40 +26,37 @@
 
     @Path("login")
     public Object login() {
-        AuthorizationEndpoint endpoint = new AuthorizationEndpoint(realm, event);
-        ResteasyProviderFactory.getInstance().injectProperties(endpoint);
-        return endpoint;
+        return new AuthorizationEndpoint(session, event);
     }
 
     @Path("logout")
     public Object logout() {
-        LogoutEndpoint endpoint = new LogoutEndpoint(realm, event);
-        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() {
+        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")
     public Object proxyValidate() {
-        return null;
+        return new ProxyValidateEndpoint(session, realm, event);
     }
 
     @Path("proxy")
     public Object proxy() {
-        return null;
+        return new ProxyEndpoint(session, realm, event);
     }
 
     @Path("p3/serviceValidate")

--
Gitblit v1.9.1