Hi Bruno, Not sure what you mean by a "a log for this error"
Here's what I see in the Apache error log Tue Feb 17 15:10:03 2009] [notice] child pid 16071 exit signal Segmentation fault (11) I tried using ldap.initialize rather than ldap.open, but I'm getting the same error. Any other ideas on how to track down the source of the error would be greatly appreciated. Pat On Feb 17, 4:08 pm, Bruno Tikami <brunotik...@gmail.com> wrote: > On Tue, Feb 17, 2009 at 5:42 PM, molhacker <wpwalt...@gmail.com> wrote: > > > I've been running into a very frustrating situation with a seg fault > > in Apache when authenticating Django using LDAP. The problem is > > intermittent, probably one out of every 5 logins causes the seg fault. > > > The code I'm using for LDAP (borrowed from the web, thanks Mick) > > authentication is shown below > > > Here's what I'm running > > > Django-1.0.2-final > > Python 2.5.2 > > httpd-2.2.9 > > openldap-2.4.14 > > python-ldap-2.3.5 > > CentOS release 4.6 (Final) > > > I've tried both mod_python-3.3.1 and mod_wsgi-2.3 I get the crash in > > both cases. I've read that there are conflicts with mod_php, but this > > is not the issue, PHP has never been installed on this server. > > > The code below runs perfectly in a standalone program, it only > > segfaults in Apache. > > > Any help would be greatly appreciated. > > > Thanks, > > > Pat > > > import ldap > > > from django.conf import settings > > from django.contrib.auth.models import User, check_password > > > class LDAPBackend: > > # fromhttp://blogs.translucentcode.org/mick/tags/django/ > > def authenticate(self, username=None, password=None): > > username = "%...@example.com" % (username) > > l = ldap.open('ldap.example.com') > > try: > > l.simple_bind_s(username, password) > > valid = True > > except ldap.LDAPError, e: > > valid = False > > if valid: > > try: > > user = User.objects.get(username=username) > > except User.DoesNotExist: > > # Create a new user. Note that we can set password to > > anything > > # as it won't be checked, the password from > > settings.py will. > > user = User(username=username, password='obtained from > > ldap') > > user.is_staff = True > > user.is_superuser = True > > user.save() > > return user > > return None > > > def get_user(self, user_id): > > try: > > return User.objects.get(pk=user_id) > > except User.DoesNotExist: > > return None > > Hi Pat, > > do you have any log for this error ? > > I have a production code on which I do exactly the same you de (even > creating new users). The only difference is that I don't user open/bind: > > conn = ldap.initialize('ldap://host') > dn = '' # dn stuff > > try: > lcon = conn.simple_bind_s(dn %username, password) > print 'OK' > return "200" > except ldap.INVALID_CREDENTIALS, e: > return "400" > > Hope that helps. > > Tkm --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/django-users?hl=en -~----------~----~----~----~------~----~------~--~---