I think I misspoke here. Even if I set the header split property, the ContainerRequestContext.getHeaders() still returns concatenated values, but if I use a @Context annotation to inject HttpHeaders, I can get back the header values individually (not concatenated). If I take away the header split property, then HttpHeaders starts returning concatenated headers. I probably should have said so in my original email, but I'm using CXF v3.2.6.
On Fri, Aug 31, 2018 at 8:35 AM James Carman <[email protected]> wrote: > I found a thread about this topic from 2015, but it seems to be talking > about client-side: > > > http://mail-archives.apache.org/mod_mbox/cxf-users/201504.mbox/%[email protected]%3E > > I'm writing a CorsFilter and I need to get the list of > Access-Control-Request-Headers to evaluate them. If I do this: > > JAXRSServerFactoryBean factory = new JAXRSServerFactoryBean(); > factory.getProperties(true).put("org.apache.cxf.http.header.split", true); > > then everything works fine. However, it seems odd (even after reading the > referred javadocs) that the expected behavior would be concatenated > values. The return type is MultivaluedMap<String,String>. If the intent > was that there would always be only one "value" in the map for each key, > then why would they say to return a MultivaluedMap<String,String>? Perhaps > this is a problem with the spec or something, but I can't really see in the > spec where it specifically says to return the values this way. It does > have a @see pointing to the getHeaderString(String), where it does say > they'd be concatenated. I'm sure I'm missing something here. Thoughts? > > Thanks, > > James > >
