예제 #1
0
def testOauth():
    s3 = boto3.client('s3')
    ddb = boto3.client('dynamodb')
    response = s3.get_object(
        Bucket=S3_BUCKET,
        Key=CREDS_KEY,
    )
    creds = json.loads(response['Body'].read())

    client_auth = requests.auth.HTTPBasicAuth(creds['appId'], creds['secret'])
    data = {
        "grant_type": "password",
        "username": creds['username'],
        "password": creds['password']
    }
    req = requests.Request('POST',
                           "https://www.reddit.com/api/v1/access_token",
                           auth=client_auth,
                           data=json.dumps(data),
                           headers={"User-Agent": "lntipbot/0.1 by lntipbot"})
    pretty_print_POST(req.prepare())

    headers = urllib3.util.make_headers(
        basic_auth='{}:{}'.format(creds['appId'], creds['secret']))
    headers["User-Agent"] = "lntipbot/0.1 by lntipbot"
    print(headers)
    print(json.dumps(data))
    response = http.request('POST',
                            "https://www.reddit.com/api/v1/access_token",
                            fields=data,
                            headers=headers)

    oauthToken = json.loads(response.data)

    print(oauthToken)
예제 #2
0
    def test_auth(self):
        auth = SignatureAuth(
            Bag(secret_key='foo', access_key='bar', method='env', token=None),
            'us-east-1', 'execute-api')

        req = requests.Request('POST', 'http://example.com', auth=auth)
        prepped = req.prepare()
        self.assertTrue(prepped.headers['Authorization'].startswith(
            'AWS4-HMAC-SHA256 Credential=bar/'))
예제 #3
0
    def test_auth(self):
        auth = SignatureAuth(
            Bag(secret_key="foo", access_key="bar", method="env", token=None),
            "us-east-1",
            "execute-api",
        )

        req = requests.Request("POST", "http://example.com", auth=auth)
        prepped = req.prepare()
        self.assertTrue(prepped.headers["Authorization"].startswith(
            "AWS4-HMAC-SHA256 Credential=bar/"))
예제 #4
0
def optimizely_request(http_verb, resource='/', qs_params={}, payload={}):
    http_verb = http_verb.lower()
    session = requests.Session()
    url = 'https://api.optimizely.com/{version}{resource}'.format(
        version='v2', resource=resource)
    headers = {"Authorization": "Bearer {}".format(token)}
    if http_verb in ['post', 'patch']:
        headers['Content-Type'] = 'application/json'
    req = requests.Request(http_verb.lower(),
                           url,
                           json=payload,
                           headers=headers,
                           params=qs_params)
    prepped = session.prepare_request(req)
    response = session.send(prepped)
    if response.status_code > 299:
        raise Exception('Unable to make request: \n{}'.format(response.text))
    try:
        return response.json()
    except Exception as e:
        return []
예제 #5
0
파일: CxRest.py 프로젝트: hazardsec/cx-scan
    def send_requests(self, keyword, url_sub=None, headers=None, data=None):
        if url_sub is None:
            url_sub = dict(pattern="", value="")
        try:
            url_parameters = self.urls.get(keyword, None)
            if not url_parameters:
                raise Exception("Keyword not in urls.json")
            url = self.server + re.sub(url_sub.get("pattern"),
                                       url_sub.get("value"),
                                       url_parameters.get("url_suffix"))
            s = requests.Session()
            headers = headers or self.headers
            req = requests.Request(method=url_parameters.get("http_method"),
                                   headers=headers,
                                   url=url,
                                   data=data)
            prepped = req.prepare()
            resp = s.send(prepped)
            if resp.status_code == 200:
                if headers.get("Accept") == "application/json;v=1.0":
                    return resp
                else:
                    return resp
            elif resp.status_code in [201, 202]:
                return resp
            elif resp.status_code == 204:
                return resp
            elif resp.status_code == 400:
                raise Exception(" 400 Bad Request: {}.".format(resp.text))
            elif resp.status_code == 404:
                rd = json.loads(resp.text)
                if rd['messageCode'] == 47642:
                    return resp
                else:
                    raise Exception(" 404 Not found {}.".format(resp.text))
            else:
                raise Exception(" Failed: {}.".format(resp.text))

        except Exception as e:
            raise Exception("{}".format(e))