work in progress: oidc authentication: start login processing
This commit is contained in:
parent
3e25b5e593
commit
87c0c1db2e
5 changed files with 32 additions and 7 deletions
|
@ -18,3 +18,7 @@ dbuser = getenv('DBUSER', 'demo')
|
|||
dbpassword = getenv('DBPASSWORD', 'secret')
|
||||
dbschema = getenv('DBSCHEMA', 'demo')
|
||||
|
||||
# authentication settings
|
||||
oidc_params = dict(
|
||||
clientid=getenv('OIDC_CLIENTID', '311613119816392525')
|
||||
)
|
||||
|
|
|
@ -17,7 +17,6 @@ def run(app, config):
|
|||
|
||||
if __name__ == '__main__':
|
||||
import config
|
||||
#run(config.app, config)
|
||||
app = config.app_factory(config)
|
||||
run(app, config)
|
||||
# see zope.app.wsgi.getWSGIApplication
|
||||
|
|
|
@ -7,6 +7,8 @@ from zope.publisher.interfaces import Unauthorized
|
|||
from scopes.server.browser import DefaultView, register
|
||||
from scopes.storage.folder import DummyFolder, Root
|
||||
|
||||
import config
|
||||
|
||||
|
||||
def authenticate(request):
|
||||
#print('*** authenticate')
|
||||
|
@ -21,6 +23,7 @@ class OidcAuthentication:
|
|||
|
||||
def authenticate(self, request):
|
||||
prc = authenticate(request)
|
||||
# prc = Authenticator().authenticate(request)
|
||||
if prc is None and self.baseAuth is not None:
|
||||
prc = self.baseAuth.authenticate(request)
|
||||
return prc
|
||||
|
@ -38,21 +41,40 @@ class OidcAuthentication:
|
|||
return self.baseAuth.unauthorized(id, request)
|
||||
|
||||
def logout(self, request):
|
||||
print('*** JwtAuthentication: logout')
|
||||
print('*** OidcAuthentication: logout')
|
||||
|
||||
JwtAuthentication = OidcAuthentication # old name - still used?
|
||||
|
||||
|
||||
class Authenticator(DummyFolder):
|
||||
|
||||
prefix = 'auth'
|
||||
|
||||
def authenticate(request):
|
||||
return None
|
||||
|
||||
def login(self, request):
|
||||
params = config.oidc_params
|
||||
print('*** login', self, request.getTraversalStack(), request['PATH_INFO'])
|
||||
print('***', dir(request))
|
||||
|
||||
|
||||
@register('auth', Root)
|
||||
def authView(context, request):
|
||||
print('*** auth', context, request['PATH_INFO'], request.getTraversalStack())
|
||||
print('*** auth', context, request['PATH_INFO'])
|
||||
return Authenticator()
|
||||
|
||||
@register('login', Authenticator)
|
||||
def login(context, request):
|
||||
print('*** login', context, request['PATH_INFO'], request.getTraversalStack())
|
||||
context.login(request)
|
||||
return DefaultView(context, request)
|
||||
|
||||
@register('callback', Authenticator)
|
||||
def login(context, request):
|
||||
print('*** callback', context, request['PATH_INFO'], request.getTraversalStack())
|
||||
return DefaultView(context, request)
|
||||
|
||||
@register('logout', Authenticator)
|
||||
def login(context, request):
|
||||
print('*** logout', context, request['PATH_INFO'], request.getTraversalStack())
|
||||
return DefaultView(context, request)
|
||||
|
|
|
@ -15,8 +15,8 @@ class DummyFolder(dict):
|
|||
return self
|
||||
|
||||
def __repr__(self):
|
||||
return '%s: %s' % (self.__class__.__name__,
|
||||
super(DummyFolder, self).__repr__())
|
||||
return '<%s: %s>' % (self.__class__.__name__,
|
||||
super(DummyFolder, self).__repr__())
|
||||
|
||||
|
||||
@implementer(IContainer, IReference)
|
||||
|
|
|
@ -67,7 +67,7 @@ class Track(object):
|
|||
return str(self.trackId)
|
||||
|
||||
def __repr__(self):
|
||||
return '%s: %s' % (self.__class__.__name__, self.asDict())
|
||||
return '<%s: %s>' % (self.__class__.__name__, self.asDict())
|
||||
|
||||
def asDict(self):
|
||||
return dict(uid=self.uid, head=self.head, data=self.data,
|
||||
|
|
Loading…
Add table
Reference in a new issue