From eeffbbf8910b708cfa744062de8442b4a4d69a5c Mon Sep 17 00:00:00 2001 From: "jocuri%softhome.net" Date: Sat, 4 Mar 2006 12:08:31 +0000 Subject: [PATCH] Patch for bug 216902: support LDAPS connections; patch by Christian Krause , r=vladd, a=justdave. git-svn-id: svn://10.0.0.236/trunk@191769 18797224-902f-48f8-a5cc-f745e15eee43 --- .../bugzilla/Bugzilla/Auth/Verify/LDAP.pm | 25 ++++++++++++++++--- .../en/default/admin/params/ldap.html.tmpl | 3 ++- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/mozilla/webtools/bugzilla/Bugzilla/Auth/Verify/LDAP.pm b/mozilla/webtools/bugzilla/Bugzilla/Auth/Verify/LDAP.pm index e8e7449714d..376fac71db9 100644 --- a/mozilla/webtools/bugzilla/Bugzilla/Auth/Verify/LDAP.pm +++ b/mozilla/webtools/bugzilla/Bugzilla/Auth/Verify/LDAP.pm @@ -73,10 +73,29 @@ sub authenticate { } my $LDAPport = "389"; # default LDAP port - if($LDAPserver =~ /:/) { - ($LDAPserver, $LDAPport) = split(":",$LDAPserver); + my $LDAPprotocol = "ldap"; + + if ($LDAPserver =~ /(ldap|ldaps):\/\/(.*)/) { + # ldap(s)://server(:port) + $LDAPprotocol = $1; + my $serverpart = $2; + if ($serverpart =~ /:/) { + # ldap(s)://server:port + ($LDAPserver, $LDAPport) = split(":", $serverpart); + } else { + # ldap(s)://server + $LDAPserver = $serverpart; + if ($LDAPprotocol eq "ldaps") { + $LDAPport = "636"; + } + } + } elsif ($LDAPserver =~ /:/) { + # server:port + ($LDAPserver, $LDAPport) = split(":", $LDAPserver); } - my $LDAPconn = Net::LDAP->new($LDAPserver, port => $LDAPport, version => 3); + + + my $LDAPconn = Net::LDAP->new("$LDAPprotocol://$LDAPserver:$LDAPport", version => 3); if(!$LDAPconn) { return (AUTH_ERROR, undef, "connect_failed"); } diff --git a/mozilla/webtools/bugzilla/template/en/default/admin/params/ldap.html.tmpl b/mozilla/webtools/bugzilla/template/en/default/admin/params/ldap.html.tmpl index 6e70687966a..af1a756a4fa 100644 --- a/mozilla/webtools/bugzilla/template/en/default/admin/params/ldap.html.tmpl +++ b/mozilla/webtools/bugzilla/template/en/default/admin/params/ldap.html.tmpl @@ -26,7 +26,8 @@ [% param_descs = { LDAPserver => "The name (and optionally port) of your LDAP server " _ - "(e.g. ldap.company.com, or ldap.company.com:portnum).", + "(e.g. ldap.company.com, or ldap.company.com:portnum). " _ + "Can be prefixed with ldap:// (default) or ldaps:// (for a secure connection).", LDAPbinddn => "If your LDAP server requires that you use a binddn and password " _ "instead of binding anonymously, enter it here " _