i.e CXF proxy do not urlencode parameters? (Instead of it use
org.apache.cxf.jaxrs.utils.HttpUtils#encodePartiallyEncoded encoding which
is not reversible)

And the only reason of this encoding is to avoid reports about correctly
encoded parameters?

As I said, CXF proxy runtime uses JAX-RS UriBuilder.
>
> And UriBuilder does not touch valid percent-encoded representations.
>
> And this is how the RS client runtime will continue operating.
>
> Sergey
>
>
>
> On 04/03/16 10:45, Volkov Sergey wrote:
>
> >>
> >> "100%25BETTER VALID STRING"
> >>
> >> instead of
> >>
> >> "100%BETTER VALID STRING"
> >>
> >
> > "100%25BETTER VALID STRING" is correct way to urlencode "100%BETTER
> VALID
> > STRING" - so actually CXF is over-smart now, when it skips all %xx
> sequence
> > instead of encode % as %25
> >
> > "100%VALID STRING" at the moment encodes by cxf as "100%25VALID STRING"
> >
> >
> >> In the former case it it has no characters that can be used to form the
> >> hex %-encoded representations.
> >>
> >> The bottom line is, you should not expect the runtime auto-encode '%'
> >> given that this symbol plays a special role in having correct URIs
> being
> >> created.
> >>
> >> If CXF will try to me over-smart then the next day someone will report
> >> that it started producing
> >>
> >> "100%25BETTER VALID STRING"
> >>
> >> instead of
> >>
> >> "100%BETTER VALID STRING"
> >>
> >> Sergey
> >> On 04/03/16 07:43, Volkov Sergey wrote:
> >>
> >>> Looks like POST request and @FormParam could be used, but I think this
> >>> behavior of @QueryParam may lead to tricky bugs in many places where
> it
> >> used
> >>>
> >>> 2016-03-04 10:37 GMT+03:00 Volkov Sergey <[hidden email]
> >> <
> http://cxf.547215.n5.nabble.com/user/SendEmail.jtp?type=node&node=5766616&i=0>>:
>
> >>
> >>>
> >>>> Yes, I don't understand why it does not touch this sequences.
> >>>>
> >>>> It's a bit strange because I can successfully transfer "100%VALID
> >> STRING"
> >>>> but not "100%BETTER VALID STRING"
> >>>>
> >>>> Both this string not percent encoded, but second contains %BE which
> >> just
> >>>> looks like percent encoded.
> >>>>
> >>>> If instead of
> >> org.apache.cxf.jaxrs.utils.HttpUtils#encodePartiallyEncoded
> >>>> cxf just urlencode parameter value when building query string both
> >> examples
> >>>> would be transferred correctly.
> >>>>
> >>>>
> >>>>
> >>>>> If you are saying that
> >>>>>
> >>>>> when you pass something like "%D1%82", or to make it clearer,
> >>>>> "%D1" and expect CXF do "%25D1", then no, it won't work.
> >>>>> UriBuilder does not touch percent-encoded sequences %XX.
> >>>>>
> >>>>> May be try building the query with UriBuilder before passing it to
> the
> >>>>> proxy, something like
> >>>>>
> >>>>> UriBuilder.fromUri("{a}%D21").build("%").toString()
> >>>>>
> >>>>> Though not sure it will be cheaper.
> >>>>>
> >>>>> Sergey
> >>>>>
> >>>>> On 03/03/16 21:27, Sergey Beryozkin wrote:
> >>>>>
> >>>>>>    From the original post in this thread:
> >>>>>>
> >>>>>>
> >>>>>>>>>> When I pass string "т" (Cyrillic symbol) to generated client in
> >>>>>>> encodes
> >>>>>>>>> to
> >>>>>>>>>> "%D1%82" in url and decodes as "т" on server what is fine, but
> >> when
> >>>>> i
> >>>>>>>>> pass
> >>>>>>>>>> "%D1%82" rather then "%25D1%2582" in encodes also to "%D1%82"
> and
> >>>>>>>>> decodes
> >>>>>>>>>> also to "т".
> >>>>>>
> >>>>>> I honestly don't get what the problem is. You pass a Cyrillic
> symbol
> >>>>>> either as is or already percent encoded and in both case, as you
> say
> >>>>>> above, you get this Cyrillic symbol.
> >>>>>>
> >>>>>
> >>>>>
> >>>>
> >>>
> >>
> >
>

Reply via email to