class documentation

A file-based, text-based username/password database.

Records in the datafile for this class are delimited by a particular string. The username appears in a fixed field of the columns delimited by this string, as does the password. Both fields are specifiable. If the passwords are not stored plaintext, a hash function must be supplied to convert plaintext passwords to the form stored on disk and this CredentialsChecker will only be able to check IUsernamePassword credentials. If the passwords are stored plaintext, IUsernameHashedPassword credentials will be checkable as well.

Method __getstate__ Undocumented
Method __init__ No summary
Method getUser Look up the credentials for a username.
Method requestAvatarId Validate credentials and produce an avatar ID.
Instance Variable cache Undocumented
Instance Variable caseSensitive Undocumented
Instance Variable credentialInterfaces A list of sub-interfaces of ICredentials which specifies which I may check.
Instance Variable delim Undocumented
Instance Variable filename Undocumented
Instance Variable hash Undocumented
Instance Variable pfield Undocumented
Instance Variable ufield Undocumented
Method _cbPasswordMatch Undocumented
Method _loadCredentials Loads the credentials from the configured file.
Class Variable _log Undocumented
Instance Variable _cacheTimestamp Undocumented
Instance Variable _credCache Undocumented
def __getstate__(self): (source)

Undocumented

def __init__(self, filename, delim=b':', usernameField=0, passwordField=1, caseSensitive=True, hash=None, cache=False): (source)
Parameters
filename:strThe name of the file from which to read username and password information.
delim:bytesThe field delimiter used in the file.
usernameField:intThe index of the username after splitting a line on the delimiter.
passwordField:intThe index of the password after splitting a line on the delimiter.
caseSensitive:boolIf true, consider the case of the username when performing a lookup. Ignore it otherwise.
hash:Three-argument callable or NoneA function used to transform the plaintext password received over the network to a format suitable for comparison against the version stored on disk. The arguments to the callable are the username, the network-supplied password, and the in-file version of the password. If the return value compares equal to the version stored on disk, the credentials are accepted.
cache:boolIf true, maintain an in-memory cache of the contents of the password file. On lookups, the mtime of the file will be checked, and the file will only be re-parsed if the mtime is newer than when the cache was generated.
def getUser(self, username: bytes) -> tuple[bytes, bytes]: (source)

Look up the credentials for a username.

Parameters
username:bytesThe username to look up.
Returns
tupleTwo-tuple of the canonicalicalized username (i.e. lowercase if the database is not case sensitive) and the associated password value, both bytes.
Raises
KeyErrorWhen lookup of the username fails.
def requestAvatarId(self, credentials: IUsernamePassword) -> Deferred[bytes | tuple[]]: (source)

Validate credentials and produce an avatar ID.

Parameters
credentials:IUsernamePasswordsomething which implements one of the interfaces in credentialInterfaces.
Returns
Deferred[bytes | tuple[]]a Deferred which will fire with a bytes that identifies an avatar, an empty tuple to specify an authenticated anonymous user (provided as twisted.cred.checkers.ANONYMOUS) or fail with UnauthorizedLogin. Alternatively, return the result itself.
See Also
twisted.cred.credentials

Undocumented

caseSensitive = (source)

Undocumented

credentialInterfaces = (source)

A list of sub-interfaces of ICredentials which specifies which I may check.

Undocumented

filename = (source)

Undocumented

Undocumented

Undocumented

Undocumented

def _cbPasswordMatch(self, matched, username): (source)

Undocumented

def _loadCredentials(self): (source)

Loads the credentials from the configured file.

Returns
iterableAn iterable of username, password couples.
Raises
UnauthorizedLoginwhen failing to read the credentials from the file.

Undocumented

_cacheTimestamp: float = (source)

Undocumented

Undocumented