work in progress: JWT authentication

This commit is contained in:
Helmut Merz 2024-11-15 08:41:42 +01:00
parent ab050ba360
commit a3da3f07f0
2 changed files with 46 additions and 1 deletions

View file

@ -21,7 +21,14 @@ postgres = [
"transaction",
"zope.sqlalchemy",
]
app = ["python-dotenv", "zope.publisher", "zope.traversing"]
app = [
"python-dotenv",
"zope.authentication",
"zope.component",
"zope.interface",
"zope.publisher",
"zope.traversing",
]
test = ["zope.testrunner"]
#test = ["pytest"]

38
scopes/server/auth.py Normal file
View file

@ -0,0 +1,38 @@
# scopes.server.auth
from zope.authentication.interfaces import IAuthentication
from zope.principalregistry.principalregistry import PrincipalRegistry
from zope.component import getUtility, provideUtility, queryNextUtility
from zope.interface import implementer
baseAuth = None
class JwtAuthentication(PrincipalRegistry):
def authenticate(self, request):
prc = authenticate(request)
if prc is None:
return baseAuth.authenticate(request)
def getPrincipal(self, id):
return baseAuth.getPrincipal(id)
def unauthenticatedPrincipal(self):
return baseAuth.unauthenticatedPrincipal()
def unauthorized(self, id, request):
return baseAuth.unauthorized(id, request)
def authenticate(request):
print('*** authenticate')
return None
def registerAuthUtility():
global baseAuth
baseAuth = getUtility(IAuthentication)
print('*** registerAuthUtility, baseAuth:', baseAuth)
provideUtility(JwtAuthentication(), IAuthentication)