On Jun 18, 11:24 am, Johann Spies <[email protected]> wrote:
> How do I implement that in web2py?
Current version: not possible.
With patched version, like this (also sent by email to you & Massimo):
auth.settings.login_methods=[ldap_auth(server='stbldap01.sun.ac.za',
base_dn='ou=users,O=SU', mode='cn', secure=True]
Patch:
--- gluon\contrib\login_methods\ldap_auth.py.934 Thu Jun 18 11:42:58
2009
+++ gluon\contrib\login_methods\ldap_auth.py Thu Jun 18 11:45:12 2009
@@ -1,9 +1,8 @@
import ldap
-#import sys
def ldap_auth(server='ldap', port=389,
base_dn='ou=users,dc=domain,dc=com',
- mode='uid'):
+ mode='uid', secure=False):
"""
to use ldap login with MS Active Directory:
auth.settings.login_methods.append(ldap_auth(mode='ad',
server='my.domain.controller', base_dn='ou=Users,dc=domain,dc=com'))
@@ -13,6 +12,8 @@
to use ldap login with OpenLDAP:
auth.settings.login_methods.append(ldap_auth
(server='my.ldap.server', base_dn='ou=Users,dc=domain,dc=com'))
+ or (if using CN)
+ auth.settings.login_methods.append(ldap_auth(mode='cn',
server='my.ldap.server', base_dn='ou=Users,dc=domain,dc=com'))
"""
def ldap_auth_aux(username,
password,
@@ -21,7 +22,10 @@
ldap_basedn=base_dn,
ldap_mode=mode):
try:
- con = ldap.initialize("ldap://" + ldap_server + ":" + str
(ldap_port))
+ if secure:
+ con = ldap.initialize("ldap://" + ldap_server + ":" +
str(ldap_port))
+ else:
+ con = ldap.initialize("ldaps://" + ldap_server + ":"
+ str(ldap_port))
if ldap_mode == 'ad':
# Microsoft Active Directory
con.set_option(ldap.OPT_PROTOCOL_VERSION, 3)
@@ -36,8 +40,12 @@
if "@" in username:
username = username.split("@")[0]
con.simple_bind_s(username, password)
+ if ldap_mode == 'cn':
+ # OpenLDAP (CN)
+ dn = "cn="+username+","+ldap_basedn
+ con.simple_bind_s(dn, password)
if ldap_mode == 'uid':
- # OpenLDAP
+ # OpenLDAP (UID)
dn = "uid="+username+","+ldap_basedn
con.simple_bind_s(dn, password)
con.unbind()
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"web2py Web Framework" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---