def initialize_server_request(request): """Shortcut for initialization.""" # Django converts Authorization header in HTTP_AUTHORIZATION # Warning: it doesn't happen in tests but it's useful, do not remove! auth_header = {} if 'Authorization' in request.META: auth_header = {'Authorization': request.META['Authorization']} elif 'HTTP_AUTHORIZATION' in request.META: auth_header = {'Authorization': request.META['HTTP_AUTHORIZATION']} parameters = dict(request.REQUEST.items()) oauth_request = OAuthRequest.from_request(request.method, request.build_absolute_uri(), headers=auth_header, parameters=parameters, query_string=request.META.get( 'QUERY_STRING', '')) if oauth_request: oauth_server = OAuthServer(DataStore(oauth_request)) if 'plaintext' in OAUTH_SIGNATURE_METHODS: oauth_server.add_signature_method(OAuthSignatureMethod_PLAINTEXT()) if 'hmac-sha1' in OAUTH_SIGNATURE_METHODS: oauth_server.add_signature_method(OAuthSignatureMethod_HMAC_SHA1()) else: oauth_server = None return oauth_server, oauth_request
def initialize_server_request(request): """Shortcut for initialization.""" # OAuth change # Django converts Authorization header in HTTP_AUTHORIZATION # Warning: it doesn't happen in tests but it's useful, do not remove! auth_header = {} if 'Authorization' in request.META: auth_header = {'Authorization': request.META['Authorization']} elif 'HTTP_AUTHORIZATION' in request.META: auth_header = {'Authorization': request.META['HTTP_AUTHORIZATION']} # Don't include extra parameters when request.method is POST and # request.MIME['CONTENT_TYPE'] is "application/x-www-form-urlencoded" # (See http://oauth.net/core/1.0a/#consumer_req_param). # But there is an issue with Django's test Client and custom content types # so an ugly test is made here, if you find a better solution... parameters = {} if request.method == "POST" and request.META.get('CONTENT_TYPE') != "application/json" \ and (request.META.get('CONTENT_TYPE') == "application/x-www-form-urlencoded" \ or request.META.get('SERVER_NAME') == 'testserver'): # lou -w -When POST statement data, the actual data is a dict key and has a value of '' # have to parse it out correctly... p = dict(request.REQUEST.items()) if p.values()[0] == '': # literal eval is putting them in differnt order parameters = ast.literal_eval(p.keys()[0]) else: parameters = p oauth_request = OAuthRequest.from_request(request.method, request.build_absolute_uri(), headers=auth_header, parameters=parameters, query_string=request.META.get( 'QUERY_STRING', '')) if oauth_request: oauth_server = OAuthServer(DataStore(oauth_request)) if 'plaintext' in OAUTH_SIGNATURE_METHODS: oauth_server.add_signature_method(OAuthSignatureMethod_PLAINTEXT()) if 'hmac-sha1' in OAUTH_SIGNATURE_METHODS: oauth_server.add_signature_method(OAuthSignatureMethod_HMAC_SHA1()) else: oauth_server = None return oauth_server, oauth_request
def initialise_server_request(request): if request.method == "POST": params = dict(request.REQUEST.items()) else: params = {} request.META['Authorization'] = request.META.get('HTTP_AUTHORIZATION', '') oauth_request = OAuthRequest.from_request(request.method, request.build_absolute_uri(), headers=request.META, parameters=params, query_string=request.environ.get( 'QUERY_STRING', '')) if oauth_request: oauth_server = OAuthServer(DataStore(oauth_request)) oauth_server.add_signature_method(OAuthSignatureMethod_PLAINTEXT()) else: oauth_server = None return oauth_server, oauth_request