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/>


Reply via email to