Escaping username characters in basic auth URLs

HttpBasic Authentication

Http Problem Overview


When using http basic authentication, the username can be passed in the URL, e.g.

http://[email protected]/path/

But now suppose the username is an email address, e.g. [email protected]. Doing this is clearly ambiguous:

http://da[email protected]@foo.com/path/

Is there a way to escape the @ character in the username? I tried standard URL encoding:

http://david%[email protected]/path/

But that didn't do it.

Http Solutions


Solution 1 - Http

According to RFC 3986, section 3.2.1, it needs to be percent encoded:

  userinfo    = *( unreserved / pct-encoded / sub-delims / ":" )

So it looks like

http://david%[email protected]/path/

Is right. Where are you trying to read it? Maybe you need to manually decode the value?

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionDavid EbboView Question on Stackoverflow
Solution 1 - HttpsagiView Answer on Stackoverflow