]> git.saurik.com Git - apt.git/blame - test/integration/test-authentication-basic
sync TFRewrite*Order arrays with dpkg and dak
[apt.git] / test / integration / test-authentication-basic
CommitLineData
b0314abb
DK
1#!/bin/sh
2set -e
3
4TESTDIR=$(readlink -f $(dirname $0))
5. $TESTDIR/framework
6
7setupenvironment
8configarchitecture 'i386'
9
10insertpackage 'unstable' 'foo' 'all' '1'
11setupaptarchive --no-update
12
13changetohttpswebserver --authorization="$(printf '%s' 'star:hunter2' | base64 )"
14
15echo 'See, when YOU type hunter2, it shows to us as *******' > aptarchive/bash
16
17testauthfailure() {
18 testfailure apthelper download-file "${1}/bash" ./downloaded/bash
19 # crappy test, but http and https output are wastely different…
20 testsuccess grep 401 rootdir/tmp/testfailure.output
e52aad52 21 testfailure test -s ./downloaded/bash
b0314abb
DK
22}
23
24testauthsuccess() {
25 testsuccess apthelper download-file "${1}/bash" ./downloaded/bash
26 testfileequal ./downloaded/bash "$(cat aptarchive/bash)"
4bb006d1 27 testfilestats ./downloaded/bash '%U:%G:%a' '=' "${TEST_DEFAULT_USER}:${TEST_DEFAULT_GROUP}:644"
b0314abb
DK
28 rm -f ./downloaded/bash
29
30 # lets see if got/retains acceptable permissions
31 if [ -n "$AUTHCONF" ]; then
32 if [ "$(id -u)" = '0' ]; then
33 testfilestats "$AUTHCONF" '%U:%G:%a' '=' "_apt:root:600"
34 else
4bb006d1 35 testfilestats "$AUTHCONF" '%U:%G:%a' '=' "${TEST_DEFAULT_USER}:${TEST_DEFAULT_GROUP}:600"
b0314abb
DK
36 fi
37 fi
38
39 rm -rf rootdir/var/lib/apt/lists
40 testsuccess aptget update
25b86db1 41 testsuccessequal 'Reading package lists...
b0314abb
DK
42Building dependency tree...
43The following NEW packages will be installed:
44 foo
450 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
46Inst foo (1 unstable [all])
47Conf foo (1 unstable [all])' aptget install foo -s
48}
49
50authfile() {
51 local AUTHCONF='rootdir/etc/apt/auth.conf'
52 rm -f "$AUTHCONF"
53 printf '%s' "$1" > "$AUTHCONF"
54 chmod 600 "$AUTHCONF"
55}
56
57runtest() {
58 # unauthorized fails
59 authfile ''
60 testauthfailure "$1"
61
62 # good auth
63 authfile 'machine localhost
64login star
65password hunter2'
66 testauthsuccess "$1"
67
68 # bad auth
69 authfile 'machine localhost
70login anonymous
71password hunter2'
72 testauthfailure "$1"
73
74 # 2 stanzas: unmatching + good auth
75 authfile 'machine debian.org
76login debian
77password jessie
78
79machine localhost
80login star
81password hunter2'
82 testauthsuccess "$1"
83}
84
85msgmsg 'server basic auth'
86rewritesourceslist 'http://localhost:8080'
87runtest 'http://localhost:8080'
88rewritesourceslist 'https://localhost:4433'
89runtest 'https://localhost:4433'
90rewritesourceslist 'http://localhost:8080'
91
92msgmsg 'proxy to server basic auth'
93webserverconfig 'aptwebserver::request::absolute' 'uri'
94export http_proxy='http://localhost:8080'
95runtest 'http://localhost:8080'
96unset http_proxy
97
98msgmsg 'proxy basic auth to server basic auth'
99webserverconfig 'aptwebserver::proxy-authorization' "$(printf 'moon:deer2' | base64)"
100export http_proxy='http://moon:deer2@localhost:8080'
101runtest 'http://localhost:8080'
102
103msgmsg 'proxy basic auth to server'
104authfile ''
105webserverconfig 'aptwebserver::authorization' ''
106testauthsuccess 'http://localhost:8080'