Compare commits

...

2 commits

4 changed files with 19 additions and 1 deletions

View file

@ -33,7 +33,6 @@
<include package="zope.app.form.browser" />
<include package="zope.app.basicskin" />
<include package="zope.browsermenu" />
<include package="zope.principalregistry" />
<include package="zope.authentication" />
<include package="zope.securitypolicy" />
<include package="zope.login" />

14
loops/server/auth.py Normal file
View file

@ -0,0 +1,14 @@
# loops.server.auth
# provide (register) authentication utility
# and other authentication and authorization stuff.
from scopes.server import auth
from zope.authentication.interfaces import IAuthentication
from zope.component import getUtility, provideUtility
def registerAuthUtility():
baseAuth = getUtility(IAuthentication)
print('*** registerAuthUtility, baseAuth:', baseAuth)
provideUtility(auth.JwtAuthentication(baseAuth))

View file

@ -5,9 +5,11 @@
import sys
# module aliases - should be moved to loops.server.aliases
# or removed after migration with zodbupdate
from zope.securitypolicy import securitymap
sys.modules['zope.app.securitypolicy.securitymap'] = securitymap
from loops.server import auth
import waitress
from zope.app.wsgi import config, getWSGIApplication
@ -21,6 +23,7 @@ def main():
zope_conf = getattr(config, 'zope_conf', 'zope.conf')
print(f'starting loops server... - conf: {zope_conf}')
app = getWSGIApplication(zope_conf)
auth.registerAuthUtility()
run(app, config)
if __name__ == '__main__':

View file

@ -31,6 +31,7 @@ from zope.security.management import getInteraction, newInteraction, endInteract
from cybertools.util.date import date2TimeStamp, strptime
from cybertools.util.jeep import Jeep
from loops.common import adapted, baseObject
from loops.server import auth
from loops.util import getObjectForUid, getUidForObject, getCatalog, reindex
os.environ['NLS_LANG'] = 'German_Germany.UTF8'
@ -67,6 +68,7 @@ def setup(zope_conf=None, loopsRootPath=None, config=config):
if conn is None:
print(f'opening ZODB connection...')
conn = db.open()
auth.registerAuthUtility()
root = conn.root()['Application']
setSite(root)
sm = component.getSiteManager(root)