def _wrapper(request, *args, **kwargs): digestor = Digestor(method=request.method, path=request.path, realm=realm) if request.META.has_key('HTTP_AUTHORIZATION'): try: parsed_header = digestor.parse_authorization_header( request.META['HTTP_AUTHORIZATION']) except ValueError, err: return HttpResponseBadRequest(err) authenticator = ModelAuthenticator(realm=realm) logging.info( "###################### Try authorization as auth user=%s" % (digestor.get_client_username())) if authenticator.secret_passed(digestor): #kwargs['userName'] = digestor.get_client_username() : return function(request, user=digestor.get_client_username(), *args, **kwargs)
def _decorator(request, *args, **kwargs): if request.META.has_key('HTTP_HOST'): realm = request.META['HTTP_HOST'] else: realm = Site.objects.get_current().name digestor = Digestor(method=request.method, path=request.get_full_path(), realm=realm) if request.META.has_key('HTTP_AUTHORIZATION'): logger.debug('request meta: %s' % request.META['HTTP_AUTHORIZATION']) try: parsed_header = digestor.parse_authorization_header( request.META['HTTP_AUTHORIZATION']) if parsed_header['realm'] == realm: odk_access = ODKAccess.objects.get(user_identifier=parsed_header[ 'username'], is_active=True) # interviewer = Interviewer.objects.get(mobile_number=parsed_header['username'], is_blocked=False) authenticator = SimpleHardcodedAuthenticator(server_realm=realm, server_username=odk_access.user_identifier, server_password=odk_access.odk_token) if authenticator.secret_passed(digestor): request.user = odk_access.interviewer return func(request, *args, **kwargs) except ODKAccess.DoesNotExist: return OpenRosaResponseNotFound() except Exception, err: return OpenRosaResponseBadRequest()
def _wrapper(request, *args, **kwargs): digestor = Digestor(method=request.method, path=request.get_full_path(), realm=realm) if request.META.has_key('HTTP_AUTHORIZATION'): try: parsed_header = digestor.parse_authorization_header( request.META['HTTP_AUTHORIZATION']) except ValueError, err: return HttpResponseBadRequest(err) if parsed_header['realm'] == realm: if password_field: authenticator = ClearTextModelAuthenticator( model=model, realm=realm, realm_field=realm_field, username_field=username_field, password_field=password_field) else: authenticator = ModelAuthenticator( model=model, realm=realm, realm_field=realm_field, username_field=username_field, secret_field=secret_field) if authenticator.secret_passed(digestor): return function(request, *args, **kwargs)
def _wrapper(request, *args, **kwargs): digestor = Digestor(method=request.method, path=request.get_full_path(), realm=realm) if request.META.has_key('HTTP_AUTHORIZATION'): try: parsed_header = digestor.parse_authorization_header( request.META['HTTP_AUTHORIZATION']) except ValueError, err: return HttpResponseBadRequest(err) if parsed_header['realm'] == realm: authenticator = SimpleHardcodedAuthenticator( server_realm=realm, server_username=username, server_password=password) if authenticator.secret_passed(digestor): return function(request, *args, **kwargs)
def setUp(self): self.digestor = Digestor(realm='testrealm', method='GET', path='/testapi/simpleprotected/') self.auth_string = 'Digest username="******", realm="extproject", nonce="1cc6ab869fca869c2c085d78a3729a66", uri="/extproject/project/fc8afe5e-da35-4fe2-a991-7b26c829cde5/user/rpgpedia/salt/", response="69ead146a246cd51bbd076244d2e455b", opaque="ToDoMoveThisToSettings", algorithm="MD5", qop=auth, nc=00000001, cnonce="a84f8e6cfcd50a75"'