It's Jetty vs Tomcat, I've double checked, added
@Encoded @QueryParam("_s")
to ensure CXF does not decode itself and still see ';'.

Yeah, minor issue, though not ideal if a user is typing it manually...

P.S. Happy to see Syncope being so cool about allowing arbitrary FIQL/(and OData ?) search filter queries :-)

Thanks, Sergey

On 30/08/16 14:59, Colm O hEigeartaigh wrote:
I'll take your word for it that it works fine in CXF :-) It's probably
Tomcat alright which is causing the problem. It's not a big deal in any
case, URL encoding fixes the problem.

Colm.

On Tue, Aug 30, 2016 at 2:51 PM, Sergey Beryozkin <[email protected]>
wrote:

CXF won't be that bad though and start picking up the matrix parameters
from a query component :-), so my guess Tomcat is stripping it.

When I run CXF JAXRSClientServerBook.testSearchBook123
I see in the server log:

Address: http://localhost:9001/bookstore/books/search?_s=name==CXF*;
id=ge=123;id=lt=124

If I update a test server method from :
@GET
    @Path("/books/search")
    @Produces("application/xml")
    public Book getBook(@Context SearchContext searchContext)

to
...
public Book getBook(@QueryParam("_s") String s)

then I can see _s being equal to:

name==CXF*;id=ge=123;id=lt=124

Colm you can try it in CXF too :-)

Thanks, Sergey



On 30/08/16 14:16, Colm O hEigeartaigh wrote:

Actually it appears Francesco is right, encoding ';' as '%3B' gives the
correct result.

Colm.

On Tue, Aug 30, 2016 at 1:03 PM, Sergey Beryozkin <[email protected]>
wrote:

Hi Francesco
On 30/08/16 13:00, Francesco Chicchiriccò wrote:

Il 30 agosto 2016 13:50:18 CEST, "Francesco Chicchiriccò" <
[email protected]> ha scritto:

Hi Colm,
have you already tried via SyncopeClient? There should be integration
test cases for AND...


I'd think that the fiql string needs to be encoded, otherwise ; could be
interpreted by CXF as separator for matrix parameters...

No, only if it is provided as part of a path, like this:

http://cxf.apache.org/docs/jax-rs-search.html#JAX-RSSearch-S
earchExpressionsinURIPathsegments

Otherwise if it is a query component, it is not a problem

Cheers, Sergey


Il 30 agosto 2016 13:39:10 CEST, Colm O hEigeartaigh

<[email protected]> ha scritto:

Hi all,

I've created the following users in Syncope with attributes of "city"
and
"country":

alice/dublin/ireland
bob/dublin/canada
eve//usa

Search for users who live in dublin gives the correct total of "2":

curl -u admin:password
http://localhost:9080/syncope/rest/users?fiql=city==dublin

However, if I search for users who live in dublin and canada, I still
get
"2", meaning that the second search term is ignored:

curl -u admin:password
http://localhost:9080/syncope/rest/users?fiql=city==dublin;c
ountry==canada

The strange thing is that the "or" condition appears to work ok.
Searching
for users who live in dublin or the usa returns all 3 users as
expected:

curl -u admin:password
http://localhost:9080/syncope/rest/users?fiql=city==dublin,c
ountry==usa

This is reproducible on both 2.0.0-SNAPSHOT + 1.2.8. It is a bug IMO
but
wanted to get some feedback first before creating a JIRA.

Colm.





--
Sergey Beryozkin

Talend Community Coders
http://coders.talend.com/










--
Sergey Beryozkin

Talend Community Coders
http://coders.talend.com/

Reply via email to