Hi James, Looks as inconsistency on the first view. Could you invest a bit more efforts and check how Jersey behaves in this case?
Regards, Andrei. > -----Original Message----- > From: James Carman [mailto:[email protected]] > Sent: Donnerstag, 13. September 2018 00:51 > To: [email protected] > Subject: Re: ContainerRequestContext.getHeaders() Returns Concatenated > Values? > > Well, it still doesn't even work consistently . Even with that property set, > ContainerRequestContext.getHeaders() returns concatenated values. > HttpHeaders (injected via @Context) does not. > > What I'm trying to determine is if this really is expected behavior. I've > looked > at the spec and can't really find where it says these should be concatenated > values. I'm sure I missed something. > > I actually don't typically usually use an Application class in my JAX-RS > projects, > at least not with CXF. I get that's the only really portable way to register > stuff, > but I typically don't. > > > On Wed, Sep 12, 2018 at 6:38 PM Andy McCright > <[email protected]> > wrote: > > > Hi James, > > > > Just speculating here... what if you add this code to your > > Application > > subclass: > > > > @Override > > > > public Map<String, Object> getProperties() { > > > > Map<String,Object> props = new HashMap<>(); > > > > props.put("org.apache.cxf.http.header.split", true); > > > > return props; > > > > } > > > > > > I think that might a more portable approach that does the same thing... > > > > > > Hope this helps, > > > > > > Andy > > > > On Sat, Sep 8, 2018 at 8:00 AM James Carman > > <[email protected]> > > wrote: > > > > > No thoughts on this one? I'd like to keep my implementation very > > "vanilla" > > > with respect to the JAX-RS spec, but I am using CXF as my JAX-RS > > > implementation during testing. I just want to make sure I'm not > > > doing > > any > > > unnecessary CXF-specific work-arounds in my code. If we were to "fix" > > it, > > > though, it might introduce a change in behavior and that's not good > > > either. > > > > > > On Fri, Aug 31, 2018 at 8:49 AM James Carman > > > <[email protected] > > > > > > wrote: > > > > > > > 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: > > > >> > > > >> > > > >> > > > > > https://urldefense.proofpoint.com/v2/url?u=http-3A__mail-2Darchives.ap > > ache.org_mod-5Fmbox_cxf-2Dusers_201504.mbox_- > 253C552BED6B.3000809-40gm > > ail.com- > 253E&d=DwIBaQ&c=2w5q_42kFG40MI2alLPgJw&r=bWOqkHjIZE0sZtdpFMIhm > > -lcbhtB3cv08OlIr0lkKR4&m=LtVUiAWp616aAPUnohJFxm_7- > hgmuQHkcURHKrhRpBI&s > > =aRsXwOJ2jihkyx9DqweSVqU5t3C9TwVls5OwhTdDPZk&e= > > > >> > > > >> 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 > > > >> > > > >> > > > > > As a recipient of an email from Talend, your contact personal data will be on our systems. Please see our contacts privacy notice at Talend, Inc. <https://www.talend.com/contacts-privacy-policy/>
