Source code for pysasl.creds


from abc import abstractmethod
from typing import Sequence
from typing_extensions import Protocol

__all__ = ['Credentials']


[docs]class Credentials(Protocol): """SASL authentication credentials consist of an authentication identity and an authorization identity, the identity to be assumed. Consider a UNIX system where ``root`` is the superuser and only it may assume the identity of other users. With an authentication identity of ``root`` and an authorization identity of ``terry``, the authorization would succeed because the authentication identity has sufficient privileges to assume the authorization identity. If the authentication identity were ``greg``, authorization would fail because ``greg`` does not have superuser privileges to assume the identity of ``terry``. See: :class:`~pysasl.creds.identity.Identity`, `RFC 4422 2. <https://www.rfc-editor.org/rfc/rfc4422#section-2>`_ """ __slots__: Sequence[str] = [] @property @abstractmethod def authcid(self) -> str: """The authentication identity, e.g. a login username.""" ... @property @abstractmethod def authzid(self) -> str: """The authorization identity. The :attr:`.authcid` identity must have sufficient privileges to assume this identity for the authentication attempt to succeed. """ ...