Пример #1
0
    def auth_as_app(self) -> str:
        logger.info("Getting access token for app")
        self.request_time = datetime.datetime.now()
        data = {'grant_type': 'client_credentials'}

        pw_manager = urllib.HTTPPasswordMgrWithDefaultRealm()
        pw_manager.add_password(None, constants.OAUTH_URL, self.app_id,
                                self.app_secret)
        urllib.install_opener(
            urllib.build_opener(urllib.HTTPBasicAuthHandler(pw_manager)))

        request = urllib.Request(constants.OAUTH_URL,
                                 data=data,
                                 headers=constants.OAUTH_REQUEST_HEADERS)

        try:
            with urllib.request.urlopen(request) as response:
                self.full_response = json.loads(response.read())
                self.jwt = self.full_response["access_token"]
                self.expires_in_secs = datetime.timedelta(
                    seconds=self.full_response["expires_in"])
                self.expiry_time = self.request_time + self.expires_in_secs - constants.JWT_TOKEN_REFRESH_BUFFER
                logger.log(
                    5,
                    "refreshed auth token at %s - token will expire in %s, with a buffer next refresh will be at %s",
                    self.request_time, self.expires_in_secs, self.expiry_time)
                return self.full_response
        except urllib.error.HTTPError as err:
            logger.critical(
                "Tried to authenticate an app, got error code %s with reason %s",
                err.code, err.reason)
            raise UnauthorizedRequestError()
Пример #2
0
    def post_data(self, data, username, password):
        utc_datetime = datetime.datetime.utcnow()
        url_parameters = {
            'cluster': self.elasticMonitoringCluster,
            'index': self.elasticIndex,
            'index_period': utc_datetime.strftime("%Y.%m.%d"),
        }
        url = "%(cluster)s/%(index)s-%(index_period)s/hrbdata" % url_parameters
        headers = {'content-type': 'application/json'}
        try:
            req = Request(url)
            req.add_header('Content-Type', 'application/json; charset=utf-8')
            jsondata = json.dumps(data)
            jsondataasbytes = jsondata.encode('utf-8')

            req.add_header('Content-Length', len(jsondataasbytes))
            data = urllib.parse.urlencode(data).encode("utf-8")
            # req = urllib.request.urlopen(url, headers=headers, data=json.dumps(data))
            if self.write_es_security_enable:
                password_mgr = urllib.HTTPPasswordMgrWithDefaultRealm()
                password_mgr.add_password(None, url, username, password)
                handler = urllib.HTTPBasicAuthHandler(password_mgr)
                opener = urllib.build_opener(handler)
                urllib.install_opener(opener)
                response = urllib.request.urlopen(req, jsondataasbytes)
            else:
                response = urllib.request.urlopen(req, jsondataasbytes)
        except Exception as e:
            print("Error:  {}".format(str(e)))
Пример #3
0
def get_unread_msgs(user, passwd):
    auth_handler = urllib.HTTPBasicAuthHandler()
    auth_handler.add_password(realm='New mail feed',
                              uri='https://mail.google.com',
                              user='******'.format(user=user),
                              passwd=passwd)
    opener = urllib.build_opener(auth_handler)
    urllib.install_opener(opener)
    feed = urllib.request.urlopen(FEED_URL)
    return feed.read()
Пример #4
0
 def handle_urlopen(self, urlData, username, password):
     if self.read_es_security_enable:
         password_mgr = urllib.HTTPPasswordMgrWithDefaultRealm()
         password_mgr.add_password(None, urlData, username, password)
         handler = urllib.HTTPBasicAuthHandler(password_mgr)
         opener = urllib.build_opener(handler)
         urllib.install_opener(opener)
         response = urllib.request.urlopen(urlData)
     else:
         response = urllib.request.urlopen(urlData)
     return response.read().decode('utf-8')
Пример #5
0
    def __init__(self, ip_address, port, username="******", password="******"):
        PowerDevice.__init__(self, ip_address, username, password)
        self._ip_address = ip_address
        self.port = port

        # create a password manager
        password_mgr = _urllib.HTTPPasswordMgrWithDefaultRealm()
        password_mgr.add_password(None, 'http://' + ip_address, username, password)
        handler = _urllib.HTTPBasicAuthHandler(password_mgr)
        opener = _urllib.build_opener(handler)
        # Now all calls to _urllib.urlopen use our opener.
        _urllib.install_opener(opener)
Пример #6
0
        def get_with_username_password(username, password):
            # create a password manager
            password_mgr = _urllib.HTTPPasswordMgrWithDefaultRealm()
            password_mgr.add_password(None, 'http://' + ip_address, username, password)
            handler = _urllib.HTTPBasicAuthHandler(password_mgr)
            opener = _urllib.build_opener(handler)
            opener.open('http://' + ip_address)
            _urllib.install_opener(opener)

            request = _urllib.Request('http://' + ip_address)
            response = opener.open(request)
            data = response.read()
            return data
Пример #7
0
def http_auth_request(url, host, user, passwd, user_agent=USER_AGENT):
    """Call an HTTP server with authorization credentials using urllib.
    """
    if DEBUG: http.client.HTTPConnection.debuglevel = 1

    # Hook up handler/opener to urllib
    password_manager = urllib.HTTPPasswordMgrWithDefaultRealm()
    password_manager.add_password(None, host, user, passwd)
    auth_handler = urllib.HTTPBasicAuthHandler(password_manager)
    opener = urllib.build_opener(auth_handler)
    urllib.install_opener(opener)

    return http_request(url, user_agent)
Пример #8
0
def download_from_url(url):
    proxy = env_server.get_proxy()
    if proxy['enabled']:
        server = proxy['server'].replace('http://', '')
        proxy_dict = {
            'http': 'http://{login}:{pass}@{0}'.format(server, **proxy)
        }
        proxy_handler = urllib2.ProxyHandler(proxy_dict)
        auth = urllib2.HTTPBasicAuthHandler()
        opener = urllib2.build_opener(proxy_handler, auth, urllib2.HTTPHandler)
        urllib2.install_opener(opener)

    def url_open_agent(url=url, timeout=1):
        return urllib2.urlopen(url=url, timeout=timeout)

    query_worker = gf.get_thread_worker(url_open_agent,
                                        error_func=gf.error_handle)
    query_worker.try_start()
    thread_pool = query_worker.get_thread_pool()
    thread_pool.waitForDone()

    if query_worker.is_failed():
        return False