Beispiel #1
0
        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)
Beispiel #2
0
 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()
Beispiel #3
0
        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)
Beispiel #4
0
        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)
Beispiel #5
0
 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"'