aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/python/Twisted/py3/twisted/plugins/cred_memory.py
diff options
context:
space:
mode:
authorshmel1k <shmel1k@ydb.tech>2023-11-26 18:16:14 +0300
committershmel1k <shmel1k@ydb.tech>2023-11-26 18:43:30 +0300
commitb8cf9e88f4c5c64d9406af533d8948deb050d695 (patch)
tree218eb61fb3c3b96ec08b4d8cdfef383104a87d63 /contrib/python/Twisted/py3/twisted/plugins/cred_memory.py
parent523f645a83a0ec97a0332dbc3863bb354c92a328 (diff)
downloadydb-b8cf9e88f4c5c64d9406af533d8948deb050d695.tar.gz
add kikimr_configure
Diffstat (limited to 'contrib/python/Twisted/py3/twisted/plugins/cred_memory.py')
-rw-r--r--contrib/python/Twisted/py3/twisted/plugins/cred_memory.py65
1 files changed, 65 insertions, 0 deletions
diff --git a/contrib/python/Twisted/py3/twisted/plugins/cred_memory.py b/contrib/python/Twisted/py3/twisted/plugins/cred_memory.py
new file mode 100644
index 0000000000..30ef10a244
--- /dev/null
+++ b/contrib/python/Twisted/py3/twisted/plugins/cred_memory.py
@@ -0,0 +1,65 @@
+# -*- test-case-name: twisted.test.test_strcred -*-
+#
+# Copyright (c) Twisted Matrix Laboratories.
+# See LICENSE for details.
+
+"""
+Cred plugin for an in-memory user database.
+"""
+
+
+from zope.interface import implementer
+
+from twisted import plugin
+from twisted.cred.checkers import InMemoryUsernamePasswordDatabaseDontUse
+from twisted.cred.credentials import IUsernameHashedPassword, IUsernamePassword
+from twisted.cred.strcred import ICheckerFactory
+
+inMemoryCheckerFactoryHelp = """
+A checker that uses an in-memory user database.
+
+This is only of use in one-off test programs or examples which
+don't want to focus too much on how credentials are verified. You
+really don't want to use this for anything else. It is a toy.
+"""
+
+
+@implementer(ICheckerFactory, plugin.IPlugin)
+class InMemoryCheckerFactory:
+ """
+ A factory for in-memory credentials checkers.
+
+ This is only of use in one-off test programs or examples which don't
+ want to focus too much on how credentials are verified.
+
+ You really don't want to use this for anything else. It is, at best, a
+ toy. If you need a simple credentials checker for a real application,
+ see L{cred_file.FileCheckerFactory}.
+ """
+
+ authType = "memory"
+ authHelp = inMemoryCheckerFactoryHelp
+ argStringFormat = "A colon-separated list (name:password:...)"
+ credentialInterfaces = (IUsernamePassword, IUsernameHashedPassword)
+
+ def generateChecker(self, argstring):
+ """
+ This checker factory expects to get a list of
+ username:password pairs, with each pair also separated by a
+ colon. For example, the string 'alice:f:bob:g' would generate
+ two users, one named 'alice' and one named 'bob'.
+ """
+ checker = InMemoryUsernamePasswordDatabaseDontUse()
+ if argstring:
+ pieces = argstring.split(":")
+ if len(pieces) % 2:
+ from twisted.cred.strcred import InvalidAuthArgumentString
+
+ raise InvalidAuthArgumentString("argstring must be in format U:P:...")
+ for i in range(0, len(pieces), 2):
+ username, password = pieces[i], pieces[i + 1]
+ checker.addUser(username, password)
+ return checker
+
+
+theInMemoryCheckerFactory = InMemoryCheckerFactory()