Mark Sztainbok created OLINGO-426:
-------------------------------------
Summary: OData query string parameters are not encoded correctly
in the URI
Key: OLINGO-426
URL: https://issues.apache.org/jira/browse/OLINGO-426
Project: Olingo
Issue Type: Bug
Components: odata4-client
Affects Versions: V4 4.0.0-beta-01
Reporter: Mark Sztainbok
When the OData URI contains query string parameters such as $filter,
$skiptoken, etc., it encodes the strings incorrectly so they fail to be
processed correctly at the server e.g. the OData server returned the URI
directoryObjects/$/Microsoft.WindowsAzure.ActiveDirectory.Group?$skiptoken=X'445370740200010000002A47726F75705F66323537333765382D666566362D343737322D393163662D3032636665383730643262332A47726F75705F66323537333765382D666566362D343737322D393163662D3032636665383730643262330000000000000000000000'
but Olingo sent it to the server as
/f872e367-02c7-4012-a01c-0f5b7c5636ae/directoryObjects/$/Microsoft.WindowsAzure.ActiveDirectory.Group?%2524skiptoken=X%2527445370740200010000002A47726F75705F66323537333765382D666566362D343737322D393163662D3032636665383730643262332A47726F75705F66323537333765382D666566362D343737322D393163662D3032636665383730643262330000000000000000000000%2527
which causes a server fail with "Error in query syntax"
Additionally code like the following also produces incorrectly coded URI's:
GroupCollection groups =
this.container.getGroups().filter(this.getNameFilter(groupName)).execute();
where getNameFilter is:
private URIFilter getNameFilter(String name) {
return this.service.getClient().getFilterFactory().eq("displayName",
name);
}
It looks like query string parameters are being double URL encoded
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)