зеркало из https://github.com/mozilla/gecko-dev.git
Bug 367480: [LDAP] Try a list of servers in order until we connect successfully
Patch By Tony Bajan <firefox@tonyb.me.uk> r=mkanat, a=mkanat
This commit is contained in:
Родитель
b8d60c16b1
Коммит
10fcc67530
|
@ -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"}) {
|
||||
|
|
|
@ -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.",
|
||||
|
|
|
@ -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 <code>[% server FILTER html %]</code>.
|
||||
Could not connect to the LDAP server(s) <code>[% server FILTER html %]</code>.
|
||||
|
||||
[% ELSIF error == "ldap_start_tls_failed" %]
|
||||
Could not start TLS with LDAP server: <code>[% error FILTER html %]</code>.
|
||||
|
|
Загрузка…
Ссылка в новой задаче