most important method inside news class is newsauth which takes username, password and will return 1 if ldap authentification was OK.
actually inn will call method authenticate which will call self.newsauth and here comes the problem .. i ve got instead of call self.newsauth error no module named py : from authenticate : try: syslog('notice', "result %s" % self.newsauth('boss','bbbb')) except Exception, msg: syslog('notice', "error %s, %s, %s" % (type(msg),msg.args,msg)) On Thu, Jun 5, 2008 at 12:26 AM, David Hláčik <[EMAIL PROTECTED]> wrote: > Hello, what this beautifull mesage which is messing me whole day means : > > *python: error <type 'instance'>, ('No module named py',), No module named > py* > > as a result of class pdg.py which is called from nnrpd_auth.py. > > To be detailed ... news server inn is calling that when doing > autentification , it calls nnrpd_auth.py where instance of my class is > hooked into inn , when authentification begins it calls method > authenticate(arguments) from pdg. > > I will provide as many information as needed to solve this mistery, becouse > i really need to solve it. > Thanks! > > > #!/usr/bin/env python > > import ldap > from nnrpd import syslog > class news: > > server = 'ldap://dev01.net.hlacik.eu' > user_dn = 'cn=pdg,ou=Operators,o=Polarion' > user_pw = 'Pdg1' > > connectcodes = { 'READPOST':200, > 'READ':201, > 'AUTHNEEDED':480, > 'PERMDENIED':502 > } > > authcodes = { 'ALLOWED':281, > 'DENIED':502 > } > > def newsauth(self,match_username,match_password): > base_dn = 'ou=Users,o=Polarion' > filter = "(uid=" + match_username + ")" > attrs = ['userPassword'] > > try : > l = ldap.initialize(self.server) > l.bind_s(self.user_dn, self.user_pw) > raw_res = l.search_s( base_dn, ldap.SCOPE_SUBTREE, > filter, attrs ) > l.unbind() > except ldap.SERVER_DOWN: > print "Error, server down" > return 2 > except ldap.INVALID_CREDENTIALS: > print "Error, invalid credentials" > return 2 > except ldap.LDAPError, e: > print "Error, %s" % e > for results in raw_res: > (cn,search) = results > for password in search["userPassword"]: > if password == match_password: return 1 > > return 0 > > > def authenticate(self, attributes): > > # just for debugging purposes > syslog('notice', 'nnrpd_auth authenticate() invoked: > hostname %s, ipaddress > %s, interface %s, user %s' % (\ > attributes['hostname'], \ > attributes['ipaddress'], \ > attributes['interface'], \ > attributes['user'])) > > try: > syslog('notice', "result %s" % > self.newsauth('boss','bbbb')) > except Exception, msg: > syslog('notice', "error %s, %s, %s" % > (type(msg),msg.args,msg)) > # do username passworld authentication > #if self.newsauth(attributes['user'], > str(attributes['pass'])): > # syslog('notice', 'authentication by username > succeeded') > # return ( self.authcodes['ALLOWED'], 'No error' ) > #else: > # syslog('notice', 'authentication by username failed') > # return ( self.authcodes['DENIED'], 'Access Denied!') > > ------------------- > > nnrpd_auth_py : > > # > # Sample authentication and authorization class. It defines all methods > known > # to nnrpd. > # > # Import functions exposed by nnrpd. This import must succeed, or nothing > # will work! > from nnrpd import * > from pdg import * > > myauth = news() > > # ...and try to hook up on nnrpd. This would make auth object methods > visible > # to nnrpd. > try: > set_auth_hook(myauth) > syslog('notice', "authentication module successfully hooked into > nnrpd") > except Exception, errmsg: > syslog('error', "Cannot obtain nnrpd hook for authentication method: > %s" % errmsg[0])
-- http://mail.python.org/mailman/listinfo/python-list