Am Mittwoch, 19. April 2006 09:54 schrieb Tobias Weber: > > > I try to add a PluggableAuthentication and a PrincipalFolder > > > automatically. When I add a principal to the PrincipalFolder it works > > > fine, but the authentification of the User fails. When I add one more > > > PluggableAuthentication manually and choose the automatically generated > > > PrincipalFolder as authenticator plugin, it works. > > > > Did you have a look at this thread: > > http://www.opensubscriber.com/message/zope3-users@zope.org/3786410.html > > > > There I pasted an example how I did it. > > Thank you, > I have tried this example: > > ensureUtility(bare, IAuthentication, '', PluggableAuthentication, > name='pau', copy_to_zlog=False) > pau = zapi.getUtility(IAuthentication, name='pau', context=self.context) > pf = PrincipalFolder() > pau['PrincipalFolder'] = pf > pf_reg = UtilityRegistration(u'users', IAuthenticatorPlugin, pf) > pau.registrationManager.addRegistration(pf_reg) > pf_reg.status = ActiveStatus > pau.authenticatorPlugins = (u'users',) > pau.credentialsPlugins = (u'Zope Realm Basic-Auth',) > > But I have the same problem descriped above. > Its frustating. There must be a trick to get it work.
I don't know what exactly did you do wrong but here is my code and it worked so far for me: def onObjectAdded(event): """ Initializes the centershock object: adds und configures some utilities when being added. """ if ICentershock.providedBy(event.object): if not ISite.providedBy(event.object): # Make it a site cs = event.object site_manager = LocalSiteManager(cs) cs.setSiteManager(site_manager) # Add PAU pau = ensureUtility(cs, zope.app.security.interfaces.IAuthentication, '', zope.app.authentication.authentication.PluggableAuthentication , asObject = True) pau.credentialsPlugins = (u'Session Credentials',) principal_folder = zope.app.authentication.principalfolder.PrincipalFolder(prefix = "cs") pau["centershock users"] = principal_folder registration = UtilityRegistration("centershock users", zope.app.authentication.interfaces.IAuthenticatorPlugin, principal_folder) registration_manager = pau.registrationManager registration_manager.addRegistration(registration) registration.status = u'Active' pau.authenticatorPlugins = (u"centershock users",) Hope that helps you, Florian _______________________________________________ Zope3-users mailing list Zope3-users@zope.org http://mail.zope.org/mailman/listinfo/zope3-users