mirror of
https://github.com/postgres/postgres.git
synced 2025-07-18 17:42:25 +03:00
Fix handling of HBA ldapserver with multiple hostnames.
Commit 35c0754f
failed to handle space-separated lists of alternative
hostnames in ldapserver, when building a URI for ldap_initialize()
(OpenLDAP). Such lists need to be expanded to space-separated URIs.
Repair. Back-patch to 11, to fix bug report #15495.
Author: Thomas Munro
Reported-by: Renaud Navarro
Discussion: https://postgr.es/m/15495-2c39fc196c95cd72%40postgresql.org
This commit is contained in:
@ -6,7 +6,7 @@ use Test::More;
|
||||
|
||||
if ($ENV{with_ldap} eq 'yes')
|
||||
{
|
||||
plan tests => 19;
|
||||
plan tests => 22;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -179,6 +179,22 @@ test_access($node, 'test1', 2,
|
||||
$ENV{"PGPASSWORD"} = 'secret1';
|
||||
test_access($node, 'test1', 0, 'search+bind authentication succeeds');
|
||||
|
||||
note "multiple servers";
|
||||
|
||||
unlink($node->data_dir . '/pg_hba.conf');
|
||||
$node->append_conf('pg_hba.conf',
|
||||
qq{local all all ldap ldapserver="$ldap_server $ldap_server" ldapport=$ldap_port ldapbasedn="$ldap_basedn"}
|
||||
);
|
||||
$node->restart;
|
||||
|
||||
$ENV{"PGPASSWORD"} = 'wrong';
|
||||
test_access($node, 'test0', 2,
|
||||
'search+bind authentication fails if user not found in LDAP');
|
||||
test_access($node, 'test1', 2,
|
||||
'search+bind authentication fails with wrong password');
|
||||
$ENV{"PGPASSWORD"} = 'secret1';
|
||||
test_access($node, 'test1', 0, 'search+bind authentication succeeds');
|
||||
|
||||
note "LDAP URLs";
|
||||
|
||||
unlink($node->data_dir . '/pg_hba.conf');
|
||||
|
Reference in New Issue
Block a user