mirror of
https://github.com/webmin/webmin.git
synced 2026-02-03 14:13:29 +00:00
Merge pull request #1142 from seabres/multiple_ldap_server
Allow multiple LDAP server for userdb
This commit is contained in:
@@ -11997,6 +11997,7 @@ On failure returns an error message string. In an array context, returns the
|
||||
protocol type too.
|
||||
|
||||
=cut
|
||||
my $lastldapserver;
|
||||
sub connect_userdb
|
||||
{
|
||||
my ($str) = @_;
|
||||
@@ -12053,10 +12054,21 @@ elsif ($proto eq "ldap") {
|
||||
if (!$port) {
|
||||
$port = $scheme eq 'ldaps' ? 636 : 389;
|
||||
}
|
||||
my $ldap = Net::LDAP->new($host,
|
||||
port => $port,
|
||||
'scheme' => $scheme);
|
||||
my $ldap;
|
||||
if ($lastldapserver ne "") {
|
||||
$ldap = Net::LDAP->new($lastldapserver,
|
||||
port => $port,
|
||||
'scheme' => $scheme,
|
||||
'timeout' => 2);
|
||||
}
|
||||
if (! $ldap) {
|
||||
$ldap = Net::LDAP->new([ split(/,/, $host) ],
|
||||
port => $port,
|
||||
'scheme' => $scheme,
|
||||
'timeout' => 2);
|
||||
}
|
||||
$ldap || return &text('sql_eldapconnect', $host);
|
||||
$lastldapserver = $ldap->host();
|
||||
my $mesg;
|
||||
if ($args->{'tls'}) {
|
||||
# Switch to TLS mode
|
||||
@@ -12135,7 +12147,7 @@ Converts a string like mysql://user:pass@host/db into separate parts
|
||||
sub split_userdb_string
|
||||
{
|
||||
my ($str) = @_;
|
||||
if ($str =~ /^([a-z]+):\/\/([^:]*):([^\@]*)\@([a-z0-9\.\-\_]+)\/([^\?]+)(\?(.*))?$/) {
|
||||
if ($str =~ /^([a-z]+):\/\/([^:]*):([^\@]*)\@([a-z0-9\.\-\_,]+)\/([^\?]+)(\?(.*))?$/) {
|
||||
my ($proto, $user, $pass, $host, $prefix, $argstr) =
|
||||
($1, $2, $3, $4, $5, $7);
|
||||
my %args = map { split(/=/, $_, 2) } split(/\&/, $argstr);
|
||||
|
||||
Reference in New Issue
Block a user