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

@ -14,9 +14,15 @@ from socket import gethostname
date_format='%d/%m/%Y %H:%M' date_format='%d/%m/%Y %H:%M'
hostname = gethostname().split(".")[0] hostname = gethostname().split(".")[0]
if hostname == "zamok": if hostname == "zamok":
anon_bind = 1 # Anonyme pour lecture seule
uri = 'ldapi://%2fvar%2frun%2fldapi/' uri = 'ldapi://%2fvar%2frun%2fldapi/'
rw_uri = uri rw_uri = uri
elif hostname == "sila" :
anon_bind = 1 # Anonyme pour lecture seule
uri = 'ldapi://%2fvar%2frun%2fldapi/'
rw_uri = 'ldaps://zamok.crans.org:636/'
else : else :
anon_bind = 0 # Doit s'authentifier pour toute action
uri = 'ldaps://sila.crans.org:636/' uri = 'ldaps://sila.crans.org:636/'
rw_uri = 'ldaps://zamok.crans.org:636/' rw_uri = 'ldaps://zamok.crans.org:636/'
@ -33,7 +39,7 @@ from time import sleep,localtime
try : try :
from secrets import ldap_password, ldap_auth_dn from secrets import ldap_password, ldap_auth_dn
except : 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) sleep(2)
ldap_password = '' ldap_password = ''
ldap_auth_dn = '' ldap_auth_dn = ''
@ -202,12 +208,15 @@ class crans_ldap :
def connect(self): def connect(self):
""" Initialisation des connexion vers le serveur LDAP """ """ Initialisation des connexion vers le serveur LDAP """
def bind(conn) : def bind(conn,anon_bind=0) :
""" Authentification auprès du serveur ldap """ """ Authentification auprès du serveur ldap """
nbessais = 0 nbessais = 0
ok = False ok = False
while not ok: while not ok:
try: try:
if anon_bind :
conn.bind_s('','',ldap.AUTH_SIMPLE)
else :
conn.bind_s(ldap_auth_dn,ldap_password,ldap.AUTH_SIMPLE) conn.bind_s(ldap_auth_dn,ldap_password,ldap.AUTH_SIMPLE)
ok = True ok = True
@ -229,7 +238,7 @@ class crans_ldap :
def new_methode(*args) : def new_methode(*args) :
try : try :
if not self.__conn_binded : if not self.__conn_binded :
bind(self.conn) bind(self.conn,anon_bind)
self.__conn_binded = True self.__conn_binded = True
return methode_base(*args) return methode_base(*args)
except ldap.STRONG_AUTH_REQUIRED : except ldap.STRONG_AUTH_REQUIRED :