There are two ways to provide multiple values for a given HTTP header.
Accept: text/plain, application/json
The default strategy for parsing the Accept header exists in org.springframework.web.accept.HeaderContentNegotiationStrategy.
This code currently uses request.getHeader("Accept"), which only returns the 'first' Accept header if there are multiple headers (ie. the second case).
This means that ONLY the first way works. The second way does not work (it simply returns the result of the first header instead of the complete set).
The code should be using request.getHeaders("Accept") and looping through each. NOTE: The code still needs to parse out the comma separated list, since it is possible to have both at the same time.