##// END OF EJS Templates
hgweb: do not ignore [auth] if url has a username (issue2822)...
hgweb: do not ignore [auth] if url has a username (issue2822) The [auth] section was ignored when handling URLs like: http://user@example.com/foo Instead, we look in [auth] for an entry matching the URL and supplied user name. Entries without username can match URL with a username. Prefix length ties are resolved in favor of entries matching the username. With: foo.prefix = http://example.org foo.username = user foo.password = password bar.prefix = http://example.org/bar and the input URL: http://user@example.org/bar the 'bar' entry will be selected because of prefix length, therefore prompting for a password. This behaviour ensure that entries selection is consistent when looking for credentials or for certificates, and that certificates can be picked even if their entries do no define usernames while the URL does. Additionally, entries without a username matched against a username are returned as if they did have requested username set to avoid prompting again for a username if the password is not set. v2: reparse the URL in readauthforuri() to handle HTTP and HTTPS similarly. v3: allow unset usernames to match URL usernames to pick certificates. Resolve prefix length ties in favor of entries with usernames.

File last commit:

r14734:f924cf56 stable
r15005:4a43e23b 1.9.1 stable
Show More
test-wireproto.t
113 lines | 8.9 KiB | text/troff | Tads3Lexer
Peter Arrenbrecht
debug: add debugwireargs to test argument passing over the wire...
r13720
Test wire protocol argument passing
Setup repo:
$ hg init repo
Local:
Peter Arrenbrecht
wireproto: fix handling of '*' args for HTTP and SSH
r13721 $ hg debugwireargs repo eins zwei --three drei --four vier
Peter Arrenbrecht
wireproto: add test for new optional arg missing on server...
r14048 eins zwei drei vier None
Peter Arrenbrecht
wireproto: fix handling of '*' args for HTTP and SSH
r13721 $ hg debugwireargs repo eins zwei --four vier
Peter Arrenbrecht
wireproto: add test for new optional arg missing on server...
r14048 eins zwei None vier None
Peter Arrenbrecht
debug: add debugwireargs to test argument passing over the wire...
r13720 $ hg debugwireargs repo eins zwei
Peter Arrenbrecht
wireproto: add test for new optional arg missing on server...
r14048 eins zwei None None None
$ hg debugwireargs repo eins zwei --five fuenf
eins zwei None None fuenf
Peter Arrenbrecht
debug: add debugwireargs to test argument passing over the wire...
r13720
HTTP:
$ hg serve -R repo -p $HGPORT -d --pid-file=hg1.pid -E error.log -A access.log
$ cat hg1.pid >> $DAEMON_PIDS
Peter Arrenbrecht
wireproto: fix handling of '*' args for HTTP and SSH
r13721 $ hg debugwireargs http://localhost:$HGPORT/ un deux trois quatre
Peter Arrenbrecht
wireproto: add test for new optional arg missing on server...
r14048 un deux trois quatre None
Steven Brown
httprepo: long arguments support (issue2126)...
r14093 $ hg debugwireargs http://localhost:$HGPORT/ \ un deux trois\ qu\ \ atre
un deux trois qu atre None
Peter Arrenbrecht
wireproto: fix handling of '*' args for HTTP and SSH
r13721 $ hg debugwireargs http://localhost:$HGPORT/ eins zwei --four vier
Peter Arrenbrecht
wireproto: add test for new optional arg missing on server...
r14048 eins zwei None vier None
Peter Arrenbrecht
debug: add debugwireargs to test argument passing over the wire...
r13720 $ hg debugwireargs http://localhost:$HGPORT/ eins zwei
Peter Arrenbrecht
wireproto: add test for new optional arg missing on server...
r14048 eins zwei None None None
$ hg debugwireargs http://localhost:$HGPORT/ eins zwei --five fuenf
eins zwei None None None
Steven Brown
httprepo: long arguments support (issue2126)...
r14093 $ hg debugwireargs http://localhost:$HGPORT/ un deux trois onethousandcharactersxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
un deux trois onethousandcharactersxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx None
$ cat error.log
Peter Arrenbrecht
debug: add debugwireargs to test argument passing over the wire...
r13720 $ cat access.log
* - - [*] "GET /?cmd=capabilities HTTP/1.1" 200 - (glob)
Matt Mackall
http: minor tweaks to long arg handling...
r14094 * - - [*] "GET /?cmd=debugwireargs HTTP/1.1" 200 - x-hgarg-1:four=quatre&one=un&three=trois&two=deux (glob)
* - - [*] "GET /?cmd=debugwireargs HTTP/1.1" 200 - x-hgarg-1:four=quatre&one=un&three=trois&two=deux (glob)
Steven Brown
httprepo: long arguments support (issue2126)...
r14093 * - - [*] "GET /?cmd=capabilities HTTP/1.1" 200 - (glob)
Matt Mackall
http: minor tweaks to long arg handling...
r14094 * - - [*] "GET /?cmd=debugwireargs HTTP/1.1" 200 - x-hgarg-1:four=qu++atre&one=+un&three=trois+&two=deux (glob)
* - - [*] "GET /?cmd=debugwireargs HTTP/1.1" 200 - x-hgarg-1:four=qu++atre&one=+un&three=trois+&two=deux (glob)
Steven Brown
httprepo: long arguments support (issue2126)...
r14093 * - - [*] "GET /?cmd=capabilities HTTP/1.1" 200 - (glob)
Matt Mackall
http: minor tweaks to long arg handling...
r14094 * - - [*] "GET /?cmd=debugwireargs HTTP/1.1" 200 - x-hgarg-1:four=vier&one=eins&two=zwei (glob)
* - - [*] "GET /?cmd=debugwireargs HTTP/1.1" 200 - x-hgarg-1:four=vier&one=eins&two=zwei (glob)
Steven Brown
httprepo: long arguments support (issue2126)...
r14093 * - - [*] "GET /?cmd=capabilities HTTP/1.1" 200 - (glob)
Matt Mackall
http: minor tweaks to long arg handling...
r14094 * - - [*] "GET /?cmd=debugwireargs HTTP/1.1" 200 - x-hgarg-1:one=eins&two=zwei (glob)
* - - [*] "GET /?cmd=debugwireargs HTTP/1.1" 200 - x-hgarg-1:one=eins&two=zwei (glob)
Steven Brown
httprepo: long arguments support (issue2126)...
r14093 * - - [*] "GET /?cmd=capabilities HTTP/1.1" 200 - (glob)
Matt Mackall
http: minor tweaks to long arg handling...
r14094 * - - [*] "GET /?cmd=debugwireargs HTTP/1.1" 200 - x-hgarg-1:one=eins&two=zwei (glob)
* - - [*] "GET /?cmd=debugwireargs HTTP/1.1" 200 - x-hgarg-1:one=eins&two=zwei (glob)
Steven Brown
httprepo: long arguments support (issue2126)...
r14093 * - - [*] "GET /?cmd=capabilities HTTP/1.1" 200 - (glob)
Matt Mackall
http: minor tweaks to long arg handling...
r14094 * - - [*] "GET /?cmd=debugwireargs HTTP/1.1" 200 - x-hgarg-1:four=onethousandcharactersxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&one x-hgarg-2:=un&three=trois&two=deux (glob)
* - - [*] "GET /?cmd=debugwireargs HTTP/1.1" 200 - x-hgarg-1:four=onethousandcharactersxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&one x-hgarg-2:=un&three=trois&two=deux (glob)
Steven Brown
httprepo: long arguments support (issue2126)...
r14093
HTTP without the httpheader capability:
$ HGRCPATH="`pwd`/repo/.hgrc"
Mads Kiilerich
tests: HGRCPATH must be exported after assignment...
r14734 $ export HGRCPATH
Steven Brown
httprepo: long arguments support (issue2126)...
r14093 $ CAP=httpheader
$ . "$TESTDIR/notcapable"
$ hg serve -R repo -p $HGPORT2 -d --pid-file=hg2.pid -E error2.log -A access2.log
$ cat hg2.pid >> $DAEMON_PIDS
$ hg debugwireargs http://localhost:$HGPORT2/ un deux trois quatre
un deux trois quatre None
$ hg debugwireargs http://localhost:$HGPORT2/ eins zwei --four vier
eins zwei None vier None
$ hg debugwireargs http://localhost:$HGPORT2/ eins zwei
eins zwei None None None
$ hg debugwireargs http://localhost:$HGPORT2/ eins zwei --five fuenf
eins zwei None None None
$ cat error2.log
$ cat access2.log
* - - [*] "GET /?cmd=capabilities HTTP/1.1" 200 - (glob)
Peter Arrenbrecht
wireproto: fix handling of '*' args for HTTP and SSH
r13721 * - - [*] "GET /?cmd=debugwireargs&four=quatre&one=un&three=trois&two=deux HTTP/1.1" 200 - (glob)
* - - [*] "GET /?cmd=debugwireargs&four=quatre&one=un&three=trois&two=deux HTTP/1.1" 200 - (glob)
* - - [*] "GET /?cmd=capabilities HTTP/1.1" 200 - (glob)
* - - [*] "GET /?cmd=debugwireargs&four=vier&one=eins&two=zwei HTTP/1.1" 200 - (glob)
* - - [*] "GET /?cmd=debugwireargs&four=vier&one=eins&two=zwei HTTP/1.1" 200 - (glob)
* - - [*] "GET /?cmd=capabilities HTTP/1.1" 200 - (glob)
Peter Arrenbrecht
debug: add debugwireargs to test argument passing over the wire...
r13720 * - - [*] "GET /?cmd=debugwireargs&one=eins&two=zwei HTTP/1.1" 200 - (glob)
* - - [*] "GET /?cmd=debugwireargs&one=eins&two=zwei HTTP/1.1" 200 - (glob)
Peter Arrenbrecht
wireproto: add test for new optional arg missing on server...
r14048 * - - [*] "GET /?cmd=capabilities HTTP/1.1" 200 - (glob)
* - - [*] "GET /?cmd=debugwireargs&one=eins&two=zwei HTTP/1.1" 200 - (glob)
* - - [*] "GET /?cmd=debugwireargs&one=eins&two=zwei HTTP/1.1" 200 - (glob)
Peter Arrenbrecht
debug: add debugwireargs to test argument passing over the wire...
r13720
SSH (try to exercise the ssh functionality with a dummy script):
$ cat <<EOF > dummyssh
> import sys
> import os
> os.chdir(os.path.dirname(sys.argv[0]))
> if sys.argv[1] != "user@dummy":
> sys.exit(-1)
> if not os.path.exists("dummyssh"):
> sys.exit(-1)
> os.environ["SSH_CLIENT"] = "127.0.0.1 1 2"
> r = os.system(sys.argv[2])
> sys.exit(bool(r))
> EOF
Peter Arrenbrecht
wireproto: fix handling of '*' args for HTTP and SSH
r13721 $ hg debugwireargs --ssh "python ./dummyssh" ssh://user@dummy/repo uno due tre quattro
Peter Arrenbrecht
wireproto: add test for new optional arg missing on server...
r14048 uno due tre quattro None
Peter Arrenbrecht
wireproto: fix handling of '*' args for HTTP and SSH
r13721 $ hg debugwireargs --ssh "python ./dummyssh" ssh://user@dummy/repo eins zwei --four vier
Peter Arrenbrecht
wireproto: add test for new optional arg missing on server...
r14048 eins zwei None vier None
Peter Arrenbrecht
debug: add debugwireargs to test argument passing over the wire...
r13720 $ hg debugwireargs --ssh "python ./dummyssh" ssh://user@dummy/repo eins zwei
Peter Arrenbrecht
wireproto: add test for new optional arg missing on server...
r14048 eins zwei None None None
$ hg debugwireargs --ssh "python ./dummyssh" ssh://user@dummy/repo eins zwei --five fuenf
eins zwei None None None
Peter Arrenbrecht
debug: add debugwireargs to test argument passing over the wire...
r13720