blob: dd7a1610efe32c76cf67a96944540b381dd2b4b3 [file] [log] [blame]
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#
def basic(username, password):
from aiohttp import BasicAuth as aiohttpBasicAuth
def apply(request):
return request['headers'].update({'authorization': aiohttpBasicAuth(username, password).encode()})
return apply
def sigv4(region, service):
import os
from boto3 import Session
from botocore.auth import SigV4Auth
from botocore.awsrequest import AWSRequest
def apply(request):
access_key = os.environ.get('AWS_ACCESS_KEY_ID', '')
secret_key = os.environ.get('AWS_SECRET_ACCESS_KEY', '')
session_token = os.environ.get('AWS_SESSION_TOKEN', '')
session = Session(
aws_access_key_id=access_key,
aws_secret_access_key=secret_key,
aws_session_token=session_token,
region_name=region
)
sigv4_request = AWSRequest(method="POST", url=request['url'], data=request['payload'])
SigV4Auth(session.get_credentials(), service, region).add_auth(sigv4_request)
request['headers'].update(sigv4_request.headers)
request['payload'] = sigv4_request.data
return request
return apply