Index: net/tools/testserver/testserver.py |
diff --git a/net/tools/testserver/testserver.py b/net/tools/testserver/testserver.py |
index 0cd663d8434551dc1f4b442edf67c8bbd222059e..fbbd1d32bf7ffaa9efee8b56c8bc34b9001705a7 100755 |
--- a/net/tools/testserver/testserver.py |
+++ b/net/tools/testserver/testserver.py |
@@ -911,8 +911,18 @@ class TestPageHandler(BasePageHandler): |
return False |
username = userpass = password = b64str = "" |
+ expected_password = 'secret' |
+ realm = 'testrealm' |
+ set_cookie_if_challenged = False |
- set_cookie_if_challenged = self.path.find('?set-cookie-if-challenged') > 0 |
+ _, _, url_path, _, query, _ = urlparse.urlparse(self.path) |
+ for (name, value) in urlparse.parse_qsl(query, True): |
cbentzel
2010/12/17 22:02:55
Use cgi.parse_qs instead of urlparse.parse_qs [and
asanka (google)
2010/12/20 17:44:08
parse_qsl() returns the query parameters as a list
|
+ if name == 'set-cookie-if-challenged': |
+ set_cookie_if_challenged = True |
+ elif name == 'password': |
+ expected_password = value |
+ elif name == 'realm': |
+ realm = value |
auth = self.headers.getheader('authorization') |
try: |
@@ -921,12 +931,12 @@ class TestPageHandler(BasePageHandler): |
b64str = re.findall(r'Basic (\S+)', auth)[0] |
userpass = base64.b64decode(b64str) |
username, password = re.findall(r'([^:]+):(\S+)', userpass)[0] |
- if password != 'secret': |
+ if password != expected_password: |
raise Exception('wrong password') |
except Exception, e: |
# Authentication failed. |
self.send_response(401) |
- self.send_header('WWW-Authenticate', 'Basic realm="testrealm"') |
+ self.send_header('WWW-Authenticate', 'Basic realm="%s"' % realm) |
self.send_header('Content-type', 'text/html') |
if set_cookie_if_challenged: |
self.send_header('Set-Cookie', 'got_challenged=true') |