mirror of https://github.com/postgres/postgres
Track behavior of \1 in pg_ident.conf when quoted
Entries of pg-user in pg_ident.conf that are quoted and include '\1' allow a replacement from a subexpression in a system user regexp. This commit adds a test to track this behavior and a note in the documentation, as it could be affected by the use of an AuthToken for the pg-user in the IdentLines parsed. This subject has come up in the discussion aimed at extending the support of pg-user in ident entries for more patterns. Author: Jelte Fennema Discussion: https://postgr.es/m/CAGECzQRNow4MwkBjgPxywXdJU_K3a9+Pm78JB7De3yQwwkTDew@mail.gmail.com
This commit is contained in:
parent
da5800d5fa
commit
0b717432ff
|
@ -960,6 +960,9 @@ mymap /^(.*)@otherdomain\.com$ guest
|
|||
will remove the domain part for users with system user names that end with
|
||||
<literal>@mydomain.com</literal>, and allow any user whose system name ends with
|
||||
<literal>@otherdomain.com</literal> to log in as <literal>guest</literal>.
|
||||
Quoting a <replaceable>database-username</replaceable> containing
|
||||
<literal>\1</literal> <emphasis>does not</emphasis> make
|
||||
<literal>\1</literal> lose its special meaning.
|
||||
</para>
|
||||
|
||||
<tip>
|
||||
|
|
|
@ -153,6 +153,19 @@ test_role(
|
|||
log_like =>
|
||||
[qr/connection authenticated: identity="$system_user" method=peer/]);
|
||||
|
||||
# Success as the regular expression matches and \1 is replaced in the given
|
||||
# subexpression, even if quoted.
|
||||
reset_pg_ident($node, 'mypeermap', qq{/^$system_user(.*)\$},
|
||||
'"test\1mapuser"');
|
||||
test_role(
|
||||
$node,
|
||||
qq{testmapuser},
|
||||
'peer',
|
||||
0,
|
||||
'with regular expression in user name map with quoted \1 replaced',
|
||||
log_like =>
|
||||
[qr/connection authenticated: identity="$system_user" method=peer/]);
|
||||
|
||||
# Failure as the regular expression does not include a subexpression, but
|
||||
# the database user contains \1, requesting a replacement.
|
||||
reset_pg_ident($node, 'mypeermap', qq{/^$system_user\$}, '\1testmapuser');
|
||||
|
|
Loading…
Reference in New Issue