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)

Reply via email to