problem with ":" in http passwords

David Welton <>
Tue May 18 15:42:11 CEST 2010


Hi,

I was trying to do something along the lines of

http:request("http://foo:bar:bee:bop@dedasys.com"), where, in theory,
'foo' is the username, and the rest is a password, but that causes
problems - try it for yourself and see what sort of headers it
generates.

This patch seems to fix it, but I can't be 100% sure since doing make
release_tests "doesn't work" (doesn't even start running tests) here.
It should be pretty simple to ascertain, though.

 lib/inets/src/http_client/httpc_request.erl |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/lib/inets/src/http_client/httpc_request.erl
b/lib/inets/src/http_client/httpc_request.erl
index 55e0af4..e64d87a 100644
--- a/lib/inets/src/http_client/httpc_request.erl
+++ b/lib/inets/src/http_client/httpc_request.erl
@@ -236,8 +236,8 @@ handle_user_info([], Headers) ->
     Headers;
 handle_user_info(UserInfo, Headers) ->
     case string:tokens(UserInfo, ":") of
-	[User, Passwd] ->
-	    UserPasswd = base64:encode_to_string(User ++ ":" ++ Passwd),
+	[User | Rest] ->
+	    UserPasswd = base64:encode_to_string(User ++ ":" ++
string:join(Rest, ":")),
 	    Headers#http_request_h{authorization = "Basic " ++ UserPasswd};
 	[User] ->
 	    UserPasswd = base64:encode_to_string(User ++ ":"),
-- 
1.6.3.3


Thanks,
-- 
David N. Welton

http://www.welton.it/davidw/

http://www.dedasys.com/


More information about the erlang-patches mailing list