From: Martin v. Löwis Date: Sun, 29 Aug 2004 16:53:26 +0000 (+0000) Subject: Patch #727483: Add AUTH_TYPE and REMOTE_USER. X-Git-Tag: v2.4a3~70 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a28b3e6dfb399a6107b717d78bc81ef6be80f123;p=python Patch #727483: Add AUTH_TYPE and REMOTE_USER. --- diff --git a/Lib/CGIHTTPServer.py b/Lib/CGIHTTPServer.py index f7b772268d..47a0e2c37a 100644 --- a/Lib/CGIHTTPServer.py +++ b/Lib/CGIHTTPServer.py @@ -153,8 +153,21 @@ class CGIHTTPRequestHandler(SimpleHTTPServer.SimpleHTTPRequestHandler): if host != self.client_address[0]: env['REMOTE_HOST'] = host env['REMOTE_ADDR'] = self.client_address[0] - # XXX AUTH_TYPE - # XXX REMOTE_USER + authorization = self.headers.getheader("authorization") + if authorization: + authorization = authorization.split() + if len(authorization) == 2: + import base64, binascii + env['AUTH_TYPE'] = authorization[0] + if authorization[0].lower() == "basic": + try: + authorization = base64.decodestring(authorization[1]) + except binascii.Error: + pass + else: + authorization = authorization.split(':') + if len(authorization) == 2: + env['REMOTE_USER'] = authorization[0] # XXX REMOTE_IDENT if self.headers.typeheader is None: env['CONTENT_TYPE'] = self.headers.type