'HTTP authentication data as a (user, password) tuple. This
implementation currently supports basic (not digest) authentication
only. If the authentication happened at a higher level (e.g. in the
front web-server or a middleware), the password field is None, but
the user field is looked up from the ``REMOTE_USER`` environ
variable. On any errors, None is returned.'

@property
def auth(self):

    basic = parse_auth(self.environ.get('HTTP_AUTHORIZATION', ''))
    if basic:
        return basic
    ruser = self.environ.get('REMOTE_USER')
    if ruser:
        return (ruser, None)
    return None
