Ejemplo n.º 1
0
    def goauth_request_client_credential(self, client_id, password=None):
        """
        This is designed to support section 4.4 of the OAuth 2.0 spec:

        "The client can request an access token using only its client
         credentials (or other supported means of authentication) when the
         client is requesting access to the protected resources under its
         control"
        """
        body = 'grant_type=client_credentials'
        path = '/goauth/token'
        method = 'POST'
        headers = sign_with_rsa(self.user_key_file,
                                path,
                                method,
                                client_id,
                                body=body,
                                password=password)
        url_parts = ('https', self.server, path, None, None)
        url = urlparse.urlunsplit(url_parts)
        response = requests.post(url,
                                 data={'grant_type': 'client_credentials'},
                                 headers=headers,
                                 verify=self.verify_ssl)
        return response.json()
Ejemplo n.º 2
0
 def goauth_rsa_get_request_token(self, username, client_id, password=None):
     query_params = {"response_type": "code", "client_id": client_id}
     query_params = urllib.urlencode(query_params)
     path = '/goauth/authorize'
     method = 'GET'
     headers = sign_with_rsa(self.user_key_file,
                             path,
                             method,
                             username,
                             query=query_params,
                             password=password)
     url_parts = ('https', self.server, '/goauth/authorize', query_params,
                  None)
     url = urlparse.urlunsplit(url_parts)
     response = requests.get(url, headers=headers, verify=self.verify_ssl)
     return response.json()
Ejemplo n.º 3
0
 def rsa_get_request_token(self, username, client_id, password=None):
     query_params = {
             "response_type": "code",
             "client_id": client_id
             }
     query_params = urllib.urlencode(query_params)
     path = '/goauth/authorize'
     method = 'GET'
     headers = sign_with_rsa(self.user_key_file,
             path,
             method,
             username,
             query=query_params,
             password=password)
     url_parts = ('https', self.server, '/goauth/authorize', query_params, None)
     url = urlparse.urlunsplit(url_parts)
     response = requests.get(url, headers=headers, verify=self.verify_ssl)
     return response.json
Ejemplo n.º 4
0
    def request_client_credential(self, client_id, password=None):
        """
        This is designed to support section 4.4 of the OAuth 2.0 spec:

        "The client can request an access token using only its client
         credentials (or other supported means of authentication) when the
         client is requesting access to the protected resources under its
         control"
        """
        body = 'grant_type=client_credentials'
        path = '/goauth/token'
        method = 'POST'
        headers = sign_with_rsa(self.user_key_file,
                path,
                method,
                client_id,
                body=body,
                password=password)
        url_parts = ('https', self.server, path, None, None)
        url = urlparse.urlunsplit(url_parts)
        response = requests.post(url, data={'grant_type': 'client_credentials'}, headers=headers, verify=self.verify_ssl)
        return response.json