Alexey created SYNCOPE-1321:
-------------------------------
Summary: Search doesn't work for date attributes with conversion
pattern with time zone
Key: SYNCOPE-1321
URL: https://issues.apache.org/jira/browse/SYNCOPE-1321
Project: Syncope
Issue Type: Bug
Components: core
Affects Versions: 2.0.8
Reporter: Alexey
Attachments: after.PNG, before.PNG
1.) I have _date type_ *PlainSchemaTO* configured with conversion pattern
{{org.apache.cxf.jaxrs.ext.search.SearchUtils.TIMESTAMP_WITH_TIMEZONE_Z =
}}{{"yyyy-MM-dd\'T\'HH:mm:ssZ"}}
2.) For instance, I built a new query using
{{org.apache.cxf.jaxrs.ext.search.client.FiqlSearchConditionBuilder with an
appropriate settings for date format.}}
3.) Query is built successfully, for instance
"date_att=lt=2018-06-12T15:21:00+0300"
but after its value being processed by *URLDecoder* in
{{org.apache.syncope.core.persistence.api.search.SearchCondVisitor, see line
79:}}
{{value =
SearchUtils.toSqlWildcardString(*URLDecoder*.*decode*(sc.getStatement().getValue().toString(),
StandardCharsets.UTF_8.name()), false).replaceAll("\\\\_", "_");}}
plus sign ('*+*') is replacing with space (' ') which leads to incorrect query
processing in further Syncope code.
I assume *URLDecoder.decode* should be removed, it should be already done by a
servlet container.
Currently, I'm using a quite ugly fix by double encoding date schema value on a
client side and dealing with date values as string ones...
Kind Regards,
Alexey
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)