Mercurial > kallithea
comparison rhodecode/lib/auth_ldap.py @ 2915:f89bb8545a61 beta
LDAP fail-over using multiple server addresses from host field seperated by comma.
author | Raoul Thill <raoul.thill@gmail.com> |
---|---|
date | Thu, 11 Oct 2012 15:05:47 +0200 |
parents | 8e10ce55531d |
children | 8464d0e96e97 |
comparison
equal
deleted
inserted
replaced
2914:1cd1cbe6cdcc | 2915:f89bb8545a61 |
---|---|
55 ldap_server_type = ldap_server_type + 's' | 55 ldap_server_type = ldap_server_type + 's' |
56 | 56 |
57 OPT_X_TLS_DEMAND = 2 | 57 OPT_X_TLS_DEMAND = 2 |
58 self.TLS_REQCERT = getattr(ldap, 'OPT_X_TLS_%s' % tls_reqcert, | 58 self.TLS_REQCERT = getattr(ldap, 'OPT_X_TLS_%s' % tls_reqcert, |
59 OPT_X_TLS_DEMAND) | 59 OPT_X_TLS_DEMAND) |
60 self.LDAP_SERVER_ADDRESS = server | 60 # split server into list |
61 self.LDAP_SERVER_ADDRESS = server.split(',') | |
61 self.LDAP_SERVER_PORT = port | 62 self.LDAP_SERVER_PORT = port |
62 | 63 |
63 # USE FOR READ ONLY BIND TO LDAP SERVER | 64 # USE FOR READ ONLY BIND TO LDAP SERVER |
64 self.LDAP_BIND_DN = safe_str(bind_dn) | 65 self.LDAP_BIND_DN = safe_str(bind_dn) |
65 self.LDAP_BIND_PASS = safe_str(bind_pass) | 66 self.LDAP_BIND_PASS = safe_str(bind_pass) |
66 | 67 _LDAP_SERVERS = [] |
67 self.LDAP_SERVER = "%s://%s:%s" % (ldap_server_type, | 68 for host in self.LDAP_SERVER_ADDRESS: |
68 self.LDAP_SERVER_ADDRESS, | 69 _LDAP_SERVERS.append("%s://%s:%s" % (ldap_server_type, |
69 self.LDAP_SERVER_PORT) | 70 host.replace(' ', ''), |
70 | 71 self.LDAP_SERVER_PORT)) |
72 self.LDAP_SERVER = str(', '.join(s for s in _LDAP_SERVERS)) | |
71 self.BASE_DN = safe_str(base_dn) | 73 self.BASE_DN = safe_str(base_dn) |
72 self.LDAP_FILTER = safe_str(ldap_filter) | 74 self.LDAP_FILTER = safe_str(ldap_filter) |
73 self.SEARCH_SCOPE = getattr(ldap, 'SCOPE_%s' % search_scope) | 75 self.SEARCH_SCOPE = getattr(ldap, 'SCOPE_%s' % search_scope) |
74 self.attr_login = attr_login | 76 self.attr_login = attr_login |
75 | 77 |