Skip to content
This repository was archived by the owner on Nov 20, 2018. It is now read-only.
This repository was archived by the owner on Nov 20, 2018. It is now read-only.

PathString over-encodes #660

Closed
Closed
@Tratcher

Description

@Tratcher

Ported from https://katanaproject.codeplex.com/workitem/462

"The resource path delimiters "(" and ")" are encoded which violates RFC 3986. Please see section 3.3. This breaks a lot of OData clients that rely on a specific URL convention. The offending code can be found in Microsoft.Owin.PathString:ToUriComponent().

http://services.odata.org/OData/OData.svc/GetProductsByCategoryId(categoryId=2)
is encoded as
http://services.odata.org/OData/OData.svc/GetProductsByCategoryId%28categoryId=2%29
which is incorrect."

AspNetCore uses a different encoder, but it likely has similar behaviors here.
https://github.com/aspnet/HttpAbstractions/blob/dev/src/Microsoft.AspNetCore.Http.Abstractions/PathString.cs#L67

pchar         = unreserved / pct-encoded / sub-delims / ":" / "@"
sub-delims    = "!" / "$" / "&" / "'" / "(" / ")"
              / "*" / "+" / "," / ";" / "="
pct-encoded   = "%" HEXDIG HEXDIG
unreserved    = ALPHA / DIGIT / "-" / "." / "_" / "~"

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions