示例#1
0
 def _obscure_json_response(*args, **kwargs):
     req = args[0]
     https_req, error = get_optional_parameter(req,
                                               'https',
                                               default=0,
                                               formatter=int)
     if error:
         https_req = 1
     retval = func(*args, **kwargs)
     if not isinstance(retval, HttpResponse):
         charset = req.META.get('HTTP_ACCEPT_CHARSET', 'utf-8')
         try:
             charsets = parse_charsets(charset)
             content = simplejson.dumps(retval, ensure_ascii=False)
             content, charset = try_encode(content, charsets, 'utf-8')
             if https_req < 1:
                 #only obscure response for request without https
                 content = obscure(content)
             response = HttpResponse(
                 content,
                 content_type='application/json; charset=%s' % charset)
         except ValueError, err:
             _LOGGER.error(err)
             return internal_server_error(req, err, exc_info=sys.exc_info())
         except Exception, err:
             _LOGGER.error('failed to convert encoding: %s' % err,
                           exc_info=1)
             return internal_server_error(req,
                                          'Unexpected error happened.',
                                          exc_info=sys.exc_info())
示例#2
0
 def _obscure_json_response(*args, **kwargs):
     req = args[0]
     https_req, error = get_optional_parameter(req, 'https', default=0, formatter=int)
     if error:
         https_req = 1
     retval = func(*args, **kwargs)
     if not isinstance(retval, HttpResponse):
         charset = req.META.get('HTTP_ACCEPT_CHARSET', 'utf-8')
         try:
             charsets = parse_charsets(charset)
             content = simplejson.dumps(retval, ensure_ascii=False)
             content, charset = try_encode(content, charsets, 'utf-8')
             if https_req < 1:
                 #only obscure response for request without https
                 content = obscure(content)
             response = HttpResponse(content, content_type='application/json; charset=%s' % charset)
         except ValueError, err:
             _LOGGER.error(err)
             return internal_server_error(req, err, exc_info=sys.exc_info())
         except Exception, err:
             _LOGGER.error('failed to convert encoding: %s' % err, exc_info=1)
             return internal_server_error(req, 'Unexpected error happened.', exc_info=sys.exc_info())
示例#3
0
                    #only obscure response for request without https
                    content = obscure(content)
                response = HttpResponse(
                    content,
                    content_type='application/json; charset=%s' % charset)
            except ValueError, err:
                _LOGGER.error(err)
                return internal_server_error(req, err, exc_info=sys.exc_info())
            except Exception, err:
                _LOGGER.error('failed to convert encoding: %s' % err,
                              exc_info=1)
                return internal_server_error(req,
                                             'Unexpected error happened.',
                                             exc_info=sys.exc_info())
        else:
            response = obscure(str(retval))
        return response

    return _obscure_json_response


def unobscure_post_request(func):
    def _unobscure_post_request(*args, **kwargs):
        req = args[0]
        https_req, error = get_optional_parameter(req,
                                                  'https',
                                                  default=0,
                                                  formatter=int)
        if error:
            https_req = 1
        if https_req < 1:
示例#4
0
            try:
                charsets = parse_charsets(charset)
                content = simplejson.dumps(retval, ensure_ascii=False)
                content, charset = try_encode(content, charsets, 'utf-8')
                if https_req < 1:
                    #only obscure response for request without https
                    content = obscure(content)
                response = HttpResponse(content, content_type='application/json; charset=%s' % charset)
            except ValueError, err:
                _LOGGER.error(err)
                return internal_server_error(req, err, exc_info=sys.exc_info())
            except Exception, err:
                _LOGGER.error('failed to convert encoding: %s' % err, exc_info=1)
                return internal_server_error(req, 'Unexpected error happened.', exc_info=sys.exc_info())
        else:
            response = obscure(str(retval))
        return response
    return _obscure_json_response

def unobscure_post_request(func):
    def _unobscure_post_request(*args, **kwargs):
        req = args[0]
        https_req, error = get_optional_parameter(req, 'https', default=0, formatter=int)
        if error:
            https_req = 1
        if https_req < 1:
            #only need to unobscure parameters for request without https
            post_data = unobscure(req.raw_post_data)
            req.POST = QueryDict(post_data)
        return func(*args, **kwargs)
    return _unobscure_post_request