On peux binder anonymement si on utilise la socket.

darcs-hash:20041009161446-41617-aeeb51dc5107366fdcf45b7958feab32e48c0fb8.gz
This commit is contained in:
pauget 2004-10-09 18:14:46 +02:00
parent 9a9d786257
commit b80290c1c1

View file

@ -13,10 +13,16 @@ from socket import gethostname
date_format='%d/%m/%Y %H:%M'
hostname = gethostname().split(".")[0]
if hostname == "zamok":
if hostname == "zamok":
anon_bind = 1 # Anonyme pour lecture seule
uri = 'ldapi://%2fvar%2frun%2fldapi/'
rw_uri = uri
else:
elif hostname == "sila" :
anon_bind = 1 # Anonyme pour lecture seule
uri = 'ldapi://%2fvar%2frun%2fldapi/'
rw_uri = 'ldaps://zamok.crans.org:636/'
else :
anon_bind = 0 # Doit s'authentifier pour toute action
uri = 'ldaps://sila.crans.org:636/'
rw_uri = 'ldaps://zamok.crans.org:636/'
@ -33,7 +39,7 @@ from time import sleep,localtime
try :
from secrets import ldap_password, ldap_auth_dn
except :
print coul('Warning : impossible de lire le fichier de secret !','jaune')
sys.stdout.write(coul('Warning : impossible de lire le fichier de secret !','jaune'))
sleep(2)
ldap_password = ''
ldap_auth_dn = ''
@ -202,13 +208,16 @@ class crans_ldap :
def connect(self):
""" Initialisation des connexion vers le serveur LDAP """
def bind(conn) :
def bind(conn,anon_bind=0) :
""" Authentification auprès du serveur ldap """
nbessais = 0
ok = False
while not ok:
try:
conn.bind_s(ldap_auth_dn,ldap_password,ldap.AUTH_SIMPLE)
if anon_bind :
conn.bind_s('','',ldap.AUTH_SIMPLE)
else :
conn.bind_s(ldap_auth_dn,ldap_password,ldap.AUTH_SIMPLE)
ok = True
except ldap.SERVER_DOWN :
@ -229,7 +238,7 @@ class crans_ldap :
def new_methode(*args) :
try :
if not self.__conn_binded :
bind(self.conn)
bind(self.conn,anon_bind)
self.__conn_binded = True
return methode_base(*args)
except ldap.STRONG_AUTH_REQUIRED :