コード例 #1
0
ファイル: odk_helper.py プロジェクト: unicefuganda/uSurvey
 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()
コード例 #2
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)