Changeset - 976e2b032650
[Not reviewed]
beta
0 1 0
Marcin Kuzminski - 13 years ago 2012-10-09 19:26:30
marcin@python-works.com
patched basic auth function to overcome git issues with proxy that doesn't send both username and password. ref #586
1 file changed with 18 insertions and 2 deletions:
0 comments (0 inline, 0 general)
rhodecode/lib/base.py
Show inline comments
 
@@ -8,8 +8,7 @@ import traceback
 

	
 
from paste.auth.basic import AuthBasicAuthenticator
 
from paste.httpexceptions import HTTPUnauthorized, HTTPForbidden
 
from webob.exc import HTTPClientError
 
from paste.httpheaders import WWW_AUTHENTICATE
 
from paste.httpheaders import WWW_AUTHENTICATE, AUTHORIZATION
 

	
 
from pylons import config, tmpl_context as c, request, session, url
 
from pylons.controllers import WSGIController
 
@@ -74,6 +73,23 @@ class BasicAuth(AuthBasicAuthenticator):
 
            return HTTPForbidden(headers=head)
 
        return HTTPUnauthorized(headers=head)
 

	
 
    def authenticate(self, environ):
 
        authorization = AUTHORIZATION(environ)
 
        if not authorization:
 
            return self.build_authentication()
 
        (authmeth, auth) = authorization.split(' ', 1)
 
        if 'basic' != authmeth.lower():
 
            return self.build_authentication()
 
        auth = auth.strip().decode('base64')
 
        _parts = auth.split(':', 1)
 
        if len(_parts) == 2:
 
            username, password = _parts
 
            if self.authfunc(environ, username, password):
 
                return username
 
        return self.build_authentication()
 

	
 
    __call__ = authenticate
 

	
 

	
 
class BaseVCSController(object):
 

	
0 comments (0 inline, 0 general)