Home | Trees | Indices | Help |
|
---|
|
1 from zope.interface import implements 2 from twisted.cred import checkers, credentials, error 3 from twisted.internet import reactor 4 from twisted.python import failure 5 from ldaptor import ldapfilter, config 6 from ldaptor.protocols.ldap import ldapconnector, ldapclient, ldapsyntax, ldaperrors 79 filter=None 10 try: 11 filter=ldapfilter.parseFilter(name) 12 except ldapfilter.InvalidLDAPFilter: 13 try: 14 filter=ldapfilter.parseFilter('('+name+')') 15 except ldapfilter.InvalidLDAPFilter: 16 if template is not None: 17 try: 18 filter=ldapfilter.parseFilter(template % {'name':name}) 19 except ldapfilter.InvalidLDAPFilter: 20 pass 21 return filter2224 """ 25 26 The avatarID returned is an LDAPEntry. 27 28 """ 29 30 implements(checkers.ICredentialsChecker) 31 credentialInterfaces = (credentials.IUsernamePassword,) 328334 self.config = cfg35 3941 if not results: 42 return failure.Failure(error.UnauthorizedLogin('TODO 1')) 43 assert len(results)==1 44 entry = results[0] 45 d = entry.client.bind(str(entry.dn), credentials.password) 46 d.addCallback(self._valid, entry) 47 return d4850 base = ldapsyntax.LDAPEntry(client, self.config.getIdentityBaseDN()) 51 d = base.search(filterObject=filt, 52 sizeLimit=1, 53 attributes=[''], # TODO no attributes 54 ) 55 d.addCallback(self._found, credentials) 56 return d5759 try: 60 baseDN = self.config.getIdentityBaseDN() 61 except config.MissingBaseDNError, e: 62 return failure.Failure(error.UnauthorizedLogin("Disabled due configuration error: %s." % e)) 63 if not credentials.username: 64 return failure.Failure(error.UnauthorizedLogin("I don't support anonymous")) 65 filtText = self.config.getIdentitySearch(credentials.username) 66 try: 67 filt = ldapfilter.parseFilter(filtText) 68 except ldapfilter.InvalidLDAPFilter: 69 return failure.Failure(error.UnauthorizedLogin("Couldn't create filter")) 70 71 c = ldapconnector.LDAPClientCreator(reactor, ldapclient.LDAPClient) 72 d = c.connect(baseDN, self.config.getServiceLocationOverrides()) 73 d.addCallback(self._connected, filt, credentials) 74 def _err(reason): 75 reason.trap(ldaperrors.LDAPInvalidCredentials, 76 77 # this happens with slapd 2.1.30 when binding 78 # with DN but no password 79 ldaperrors.LDAPUnwillingToPerform) 80 return failure.Failure(error.UnauthorizedLogin())81 d.addErrback(_err) 82 return d
Home | Trees | Indices | Help |
|
---|
Generated by Epydoc 3.0.1 on Mon Jan 2 08:01:52 2012 | http://epydoc.sourceforge.net |