Commit de7d2545 authored by Matthias Piepkorn's avatar Matthias Piepkorn Committed by matthiasp
Browse files

Do not fail on invalid Accept header

parent 4e2fd6ba
package org.keycloak.protocol.cas.utils;
import org.jboss.resteasy.spi.BadRequestException;
import org.jboss.resteasy.spi.HttpRequest;
import org.keycloak.protocol.cas.CASLoginProtocol;
......@@ -22,7 +23,12 @@ public class ContentTypeHelper {
//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();
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;
}
}
}
......@@ -29,6 +29,7 @@ public class ContentTypeHelperTest {
assertEquals(MediaType.APPLICATION_XML_TYPE, get("http://example.com/?format=xml", MediaType.APPLICATION_JSON).selectResponseType());
assertEquals(MediaType.APPLICATION_XML_TYPE, get("http://example.com/", MediaType.TEXT_PLAIN).selectResponseType());
assertEquals(MediaType.APPLICATION_XML_TYPE, get("http://example.com/", "text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2").selectResponseType());
}
private ContentTypeHelper get(String uri, String acceptHeader) throws Exception {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment