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())
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())
#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:
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