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/utils/ContentTypeHelper.java |   29 +++++++++++------------------
 1 files changed, 11 insertions(+), 18 deletions(-)

diff --git a/src/main/java/org/keycloak/protocol/cas/utils/ContentTypeHelper.java b/src/main/java/org/keycloak/protocol/cas/utils/ContentTypeHelper.java
index 5096474..f74b9f5 100644
--- a/src/main/java/org/keycloak/protocol/cas/utils/ContentTypeHelper.java
+++ b/src/main/java/org/keycloak/protocol/cas/utils/ContentTypeHelper.java
@@ -1,34 +1,27 @@
 package org.keycloak.protocol.cas.utils;
 
-import org.jboss.resteasy.spi.BadRequestException;
-import org.jboss.resteasy.spi.HttpRequest;
+import jakarta.ws.rs.core.*;
 import org.keycloak.protocol.cas.CASLoginProtocol;
-
-import javax.ws.rs.core.*;
+import org.keycloak.protocol.cas.representations.CASErrorCode;
 
 public class ContentTypeHelper {
-    private final HttpRequest request;
-    private final Request restRequest;
     private final UriInfo uriInfo;
 
-    public ContentTypeHelper(HttpRequest request, Request restRequest, UriInfo uriInfo) {
-        this.request = request;
-        this.restRequest = restRequest;
+    public ContentTypeHelper(UriInfo uriInfo) {
         this.uriInfo = uriInfo;
     }
 
     public MediaType selectResponseType() {
         String format = uriInfo.getQueryParameters().getFirst(CASLoginProtocol.FORMAT_PARAM);
         if (format != null && !format.isEmpty()) {
-            //if parameter is set, it overrides all header values (see spec section 2.5.1)
-            request.getMutableHeaders().putSingle(HttpHeaders.ACCEPT, "application/" + format.toLowerCase());
+            if (format.equalsIgnoreCase("json")) {
+                return MediaType.APPLICATION_JSON_TYPE;
+            } else if (format.equalsIgnoreCase("xml")) {
+                return MediaType.APPLICATION_XML_TYPE;
+            } else {
+                throw new CASValidationException(CASErrorCode.INVALID_REQUEST, "Unsupported value of parameter " + CASLoginProtocol.FORMAT_PARAM, Response.Status.BAD_REQUEST);
+            }
         }
-        try {
-            Variant variant = restRequest.selectVariant(Variant.mediaTypes(MediaType.APPLICATION_XML_TYPE, MediaType.APPLICATION_JSON_TYPE).build());
-            return variant == null ? MediaType.APPLICATION_XML_TYPE : variant.getMediaType();
-        } catch (BadRequestException e) {
-            //the default Accept header set by java.net.HttpURLConnection is invalid (cf. RESTEASY-960)
-            return MediaType.APPLICATION_XML_TYPE;
-        }
+        return MediaType.APPLICATION_XML_TYPE;
     }
 }

--
Gitblit v1.9.1