Exemple #1
0
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
Exemple #2
0
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
Exemple #3
0
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