Ejemplo n.º 1
0
    def _TokenRequest(self, request):
        """Make a requst to this client's provider's token endpoint.

    Args:
      request: A dict with the request parameteres.
    Returns:
      A tuple (response, error) where,
      - response is the parsed JSON response received from the token endpoint,
            or None if no parseable response was received, and
      - error is None if the request succeeded or
            an Exception if an error occurred.
    """

        body = urllib.urlencode(request)
        LOG.debug('_TokenRequest request: %s', body)
        response = None
        try:
            request = fancy_urllib.FancyRequest(self.provider.token_uri,
                                                data=body)
            if self._proxy:
                request.set_proxy(self._proxy, 'http')

            request.set_ssl_info(ca_certs=self.ca_certs_file)
            result = self.url_opener.open(request)
            resp_body = result.read()
            LOG.debug('_TokenRequest response: %s', resp_body)
        except urllib2.HTTPError, e:
            try:
                response = json.loads(e.read())
            except:
                pass
            return (response, e)
Ejemplo n.º 2
0
def UrlOpen(url):
    request = fancy_urllib.FancyRequest(url)
    ca_certs = os.path.join(SCRIPT_DIR, 'cacerts.txt')
    request.set_ssl_info(ca_certs=ca_certs)
    url_opener = urllib2.build_opener(fancy_urllib.FancyProxyHandler(),
                                      fancy_urllib.FancyRedirectHandler(),
                                      fancy_urllib.FancyHTTPSHandler())
    return url_opener.open(request)