diff --git a/webtools/bugzilla/Bugzilla/Auth/Verify/LDAP.pm b/webtools/bugzilla/Bugzilla/Auth/Verify/LDAP.pm
index 343f7952cd4d..0176abdcb31e 100644
--- a/webtools/bugzilla/Bugzilla/Auth/Verify/LDAP.pm
+++ b/webtools/bugzilla/Bugzilla/Auth/Verify/LDAP.pm
@@ -37,6 +37,7 @@ use fields qw(
use Bugzilla::Constants;
use Bugzilla::Error;
+use Bugzilla::Util;
use Net::LDAP;
@@ -134,11 +135,15 @@ sub ldap {
my ($self) = @_;
return $self->{ldap} if $self->{ldap};
- my $server = Bugzilla->params->{"LDAPserver"};
- ThrowCodeError("ldap_server_not_defined") unless $server;
+ my @servers = split(/[\s,]+]/, Bugzilla->params->{"LDAPserver"});
+ ThrowCodeError("ldap_server_not_defined") unless @servers;
- $self->{ldap} = new Net::LDAP($server)
- || ThrowCodeError("ldap_connect_failed", { server => $server });
+ foreach (@servers) {
+ $self->{ldap} = new Net::LDAP(trim($_));
+ last if $self->{ldap};
+ }
+ ThrowCodeError("ldap_connect_failed", { server => join(", ", @servers) })
+ unless $self->{ldap};
# try to start TLS if needed
if (Bugzilla->params->{"LDAPstarttls"}) {
diff --git a/webtools/bugzilla/template/en/default/admin/params/ldap.html.tmpl b/webtools/bugzilla/template/en/default/admin/params/ldap.html.tmpl
index a3c7e464357f..22375cdf70e7 100644
--- a/webtools/bugzilla/template/en/default/admin/params/ldap.html.tmpl
+++ b/webtools/bugzilla/template/en/default/admin/params/ldap.html.tmpl
@@ -30,7 +30,9 @@
"URI syntax can also be used, such as "_
"ldaps://ldap.company.com (for a secure connection) or " _
"ldapi://%2fvar%2flib%2fldap_sock (for a socket-based " _
- "local connection.",
+ "local connection. Multiple hostnames or URIs can be comma " _
+ "separated; each will be tried in turn until a connection is " _
+ "established.",
LDAPstartls => "Whether to require encrypted communication once normal " _
"LDAP connection achieved with the server.",
diff --git a/webtools/bugzilla/template/en/default/global/code-error.html.tmpl b/webtools/bugzilla/template/en/default/global/code-error.html.tmpl
index 2de8bd6a26c1..91044064d1b3 100644
--- a/webtools/bugzilla/template/en/default/global/code-error.html.tmpl
+++ b/webtools/bugzilla/template/en/default/global/code-error.html.tmpl
@@ -279,7 +279,7 @@
The specified LDAP attribute [% attr FILTER html %] was not found.
[% ELSIF error == "ldap_connect_failed" %]
- Could not connect to the LDAP server [% server FILTER html %]
.
+ Could not connect to the LDAP server(s) [% server FILTER html %]
.
[% ELSIF error == "ldap_start_tls_failed" %]
Could not start TLS with LDAP server: [% error FILTER html %]
.