From 5ba0b037031c3b1afc89a419d432c5f1d8748aa2 Mon Sep 17 00:00:00 2001
From: Matthias Piepkorn <mpiepk@gmail.com>
Date: Sun, 05 Feb 2017 11:18:26 +0000
Subject: [PATCH] Add test for ContentTypeHelper, fix format parameter handling

---
 src/main/java/org/keycloak/protocol/cas/utils/ContentTypeHelper.java |    3 ++-
 1 files changed, 2 insertions(+), 1 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 e842ef0..0e13ca6 100644
--- a/src/main/java/org/keycloak/protocol/cas/utils/ContentTypeHelper.java
+++ b/src/main/java/org/keycloak/protocol/cas/utils/ContentTypeHelper.java
@@ -19,7 +19,8 @@
     public MediaType selectResponseType() {
         String format = uriInfo.getQueryParameters().getFirst(CASLoginProtocol.FORMAT_PARAM);
         if (format != null && !format.isEmpty()) {
-            request.getMutableHeaders().add(HttpHeaders.ACCEPT, "application/" + format);
+            //if parameter is set, it overrides all header values (see spec section 2.5.1)
+            request.getMutableHeaders().putSingle(HttpHeaders.ACCEPT, "application/" + format.toLowerCase());
         }
         Variant variant = restRequest.selectVariant(Variant.mediaTypes(MediaType.APPLICATION_XML_TYPE, MediaType.APPLICATION_JSON_TYPE).build());
         return variant == null ? MediaType.APPLICATION_XML_TYPE : variant.getMediaType();

--
Gitblit v1.9.1