Source code for globus_sdk.authorizers.basic
import base64
import logging
from .base import StaticGlobusAuthorizer
log = logging.getLogger(__name__)
[docs]
class BasicAuthorizer(StaticGlobusAuthorizer):
"""
This Authorizer implements Basic Authentication.
Given a "username" and "password", they are sent base64 encoded in the
header.
:param username: Username component for Basic Auth
:param password: Password component for Basic Auth
"""
def __init__(self, username: str, password: str) -> None:
log.debug(
"Setting up a BasicAuthorizer. It will use an "
"auth type of Basic and cannot handle 401s."
)
log.debug(f"BasicAuthorizer.username = {username}")
self.username = username
self.password = password
to_b64 = f"{username}:{password}"
self.header_val = f"Basic {_b64str(to_b64)}"
def _b64str(s: str) -> str:
return base64.b64encode(s.encode("utf-8")).decode("utf-8")