Hi Francesco
Would like to return to this issue raised by Colm,
Can you give me a favor please and check sometime next week, with
Syncope loaded into Tomcat, with a breakpoint set at:
https://github.com/apache/cxf/blob/cxf-3.1.7/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java#L372
what QUERY_STRING returns.
I believe you should see ';' gone and then it is down to Tomcat itself
or, quite possibly, to some filters, sitting in front of CXF. I'm
curious because I'm not sure I've heard that Tomcat strips ';' before.
Thanks, Sergey
On 30/08/16 15:07, Sergey Beryozkin wrote:
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 <sberyoz...@gmail.com>
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
<sberyoz...@gmail.com>
wrote:
Hi Francesco
On 30/08/16 13:00, Francesco Chicchiriccò wrote:
Il 30 agosto 2016 13:50:18 CEST, "Francesco Chicchiriccò" <
ilgro...@apache.org> 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
<cohei...@apache.org> 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/