chromium/third_party/blink/web_tests/external/wpt/websockets/handlers/basic_auth_wsh.py

#!/usr/bin/python

"""A WebSocket handler that enforces basic HTTP authentication. Username is
'foo' and password is 'bar'."""


from pywebsocket3.handshake import AbortedByUserException


def web_socket_do_extra_handshake(request):
    authorization = request.headers_in.get('authorization')
    if authorization is None or authorization != 'Basic Zm9vOmJhcg==':
        if request.protocol == "HTTP/2":
            request.status = 401
            request.headers_out["Content-Length"] = "0"
            request.headers_out['www-authenticate'] = 'Basic realm="camelot"'
        else:
            request.connection.write(b'HTTP/1.1 401 Unauthorized\x0d\x0a'
                                     b'Content-Length: 0\x0d\x0a'
                                     b'WWW-Authenticate: Basic realm="camelot"\x0d\x0a'
                                     b'\x0d\x0a')
        raise AbortedByUserException('Abort the connection')


def web_socket_transfer_data(request):
    pass