blob: 269142da247a6a994cf543491beb5807aac9fb7a [file] [log] [blame]
#!/usr/bin/env python3
import base64
import os
import sys
from urllib.parse import parse_qs
credentials = base64.b64decode(os.environ.get('HTTP_AUTHORIZATION', ' Og==').split(' ')[1]).decode().split(':')
username = credentials[0]
password = ':'.join(credentials[1:])
redirect = int(parse_qs(os.environ.get('QUERY_STRING', ''), keep_blank_values=True).get('redirect', [200])[0])
sys.stdout.write('Content-Type: text/html\r\n')
if not username or not password:
sys.stdout.write(
'WWW-Authenticate: Basic realm="http/tests/misc/authentication-redirect-2"\r\n'
'status: 401\r\n\r\n'
)
else:
if redirect in [301, 302, 303, 307]:
sys.stdout.write(
'Location: http://127.0.0.1:8000/misc/authentication-redirect-2/resources/auth-echo.py\r\n'
'status: {}\r\n\r\n'.format(redirect)
)
else:
sys.stdout.write('\r\nUnknown redirect parameter sent')