mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-09-07 10:59:20 +02:00
Improve log messages related to pg_hba.conf not matching a connection.
Include details on whether GSS encryption has been activated; since we added "hostgssenc" type HBA entries, that's relevant info. Kyotaro Horiguchi and Tom Lane. Back-patch to v12 where GSS encryption was introduced. Discussion: https://postgr.es/m/e5b0b6ed05764324a2f3fe7acfc766d5@smhi.se
This commit is contained in:
parent
4cfdd8a47a
commit
7ed616f818
@ -400,44 +400,37 @@ ClientAuthentication(Port *port)
|
|||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
char hostinfo[NI_MAXHOST];
|
char hostinfo[NI_MAXHOST];
|
||||||
|
const char *encryption_state;
|
||||||
|
|
||||||
pg_getnameinfo_all(&port->raddr.addr, port->raddr.salen,
|
pg_getnameinfo_all(&port->raddr.addr, port->raddr.salen,
|
||||||
hostinfo, sizeof(hostinfo),
|
hostinfo, sizeof(hostinfo),
|
||||||
NULL, 0,
|
NULL, 0,
|
||||||
NI_NUMERICHOST);
|
NI_NUMERICHOST);
|
||||||
|
|
||||||
if (am_walsender)
|
encryption_state =
|
||||||
{
|
#ifdef ENABLE_GSS
|
||||||
|
(port->gss && port->gss->enc) ? _("GSS encryption") :
|
||||||
|
#endif
|
||||||
#ifdef USE_SSL
|
#ifdef USE_SSL
|
||||||
|
port->ssl_in_use ? _("SSL on") :
|
||||||
|
#endif
|
||||||
|
_("SSL off");
|
||||||
|
|
||||||
|
if (am_walsender)
|
||||||
ereport(FATAL,
|
ereport(FATAL,
|
||||||
(errcode(ERRCODE_INVALID_AUTHORIZATION_SPECIFICATION),
|
(errcode(ERRCODE_INVALID_AUTHORIZATION_SPECIFICATION),
|
||||||
|
/* translator: last %s describes encryption state */
|
||||||
errmsg("pg_hba.conf rejects replication connection for host \"%s\", user \"%s\", %s",
|
errmsg("pg_hba.conf rejects replication connection for host \"%s\", user \"%s\", %s",
|
||||||
hostinfo, port->user_name,
|
hostinfo, port->user_name,
|
||||||
port->ssl_in_use ? _("SSL on") : _("SSL off"))));
|
encryption_state)));
|
||||||
#else
|
|
||||||
ereport(FATAL,
|
|
||||||
(errcode(ERRCODE_INVALID_AUTHORIZATION_SPECIFICATION),
|
|
||||||
errmsg("pg_hba.conf rejects replication connection for host \"%s\", user \"%s\"",
|
|
||||||
hostinfo, port->user_name)));
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
|
||||||
#ifdef USE_SSL
|
|
||||||
ereport(FATAL,
|
ereport(FATAL,
|
||||||
(errcode(ERRCODE_INVALID_AUTHORIZATION_SPECIFICATION),
|
(errcode(ERRCODE_INVALID_AUTHORIZATION_SPECIFICATION),
|
||||||
|
/* translator: last %s describes encryption state */
|
||||||
errmsg("pg_hba.conf rejects connection for host \"%s\", user \"%s\", database \"%s\", %s",
|
errmsg("pg_hba.conf rejects connection for host \"%s\", user \"%s\", database \"%s\", %s",
|
||||||
hostinfo, port->user_name,
|
hostinfo, port->user_name,
|
||||||
port->database_name,
|
port->database_name,
|
||||||
port->ssl_in_use ? _("SSL on") : _("SSL off"))));
|
encryption_state)));
|
||||||
#else
|
|
||||||
ereport(FATAL,
|
|
||||||
(errcode(ERRCODE_INVALID_AUTHORIZATION_SPECIFICATION),
|
|
||||||
errmsg("pg_hba.conf rejects connection for host \"%s\", user \"%s\", database \"%s\"",
|
|
||||||
hostinfo, port->user_name,
|
|
||||||
port->database_name)));
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -453,12 +446,22 @@ ClientAuthentication(Port *port)
|
|||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
char hostinfo[NI_MAXHOST];
|
char hostinfo[NI_MAXHOST];
|
||||||
|
const char *encryption_state;
|
||||||
|
|
||||||
pg_getnameinfo_all(&port->raddr.addr, port->raddr.salen,
|
pg_getnameinfo_all(&port->raddr.addr, port->raddr.salen,
|
||||||
hostinfo, sizeof(hostinfo),
|
hostinfo, sizeof(hostinfo),
|
||||||
NULL, 0,
|
NULL, 0,
|
||||||
NI_NUMERICHOST);
|
NI_NUMERICHOST);
|
||||||
|
|
||||||
|
encryption_state =
|
||||||
|
#ifdef ENABLE_GSS
|
||||||
|
(port->gss && port->gss->enc) ? _("GSS encryption") :
|
||||||
|
#endif
|
||||||
|
#ifdef USE_SSL
|
||||||
|
port->ssl_in_use ? _("SSL on") :
|
||||||
|
#endif
|
||||||
|
_("SSL off");
|
||||||
|
|
||||||
#define HOSTNAME_LOOKUP_DETAIL(port) \
|
#define HOSTNAME_LOOKUP_DETAIL(port) \
|
||||||
(port->remote_hostname ? \
|
(port->remote_hostname ? \
|
||||||
(port->remote_hostname_resolv == +1 ? \
|
(port->remote_hostname_resolv == +1 ? \
|
||||||
@ -481,41 +484,22 @@ ClientAuthentication(Port *port)
|
|||||||
0))
|
0))
|
||||||
|
|
||||||
if (am_walsender)
|
if (am_walsender)
|
||||||
{
|
|
||||||
#ifdef USE_SSL
|
|
||||||
ereport(FATAL,
|
ereport(FATAL,
|
||||||
(errcode(ERRCODE_INVALID_AUTHORIZATION_SPECIFICATION),
|
(errcode(ERRCODE_INVALID_AUTHORIZATION_SPECIFICATION),
|
||||||
|
/* translator: last %s describes encryption state */
|
||||||
errmsg("no pg_hba.conf entry for replication connection from host \"%s\", user \"%s\", %s",
|
errmsg("no pg_hba.conf entry for replication connection from host \"%s\", user \"%s\", %s",
|
||||||
hostinfo, port->user_name,
|
hostinfo, port->user_name,
|
||||||
port->ssl_in_use ? _("SSL on") : _("SSL off")),
|
encryption_state),
|
||||||
HOSTNAME_LOOKUP_DETAIL(port)));
|
HOSTNAME_LOOKUP_DETAIL(port)));
|
||||||
#else
|
|
||||||
ereport(FATAL,
|
|
||||||
(errcode(ERRCODE_INVALID_AUTHORIZATION_SPECIFICATION),
|
|
||||||
errmsg("no pg_hba.conf entry for replication connection from host \"%s\", user \"%s\"",
|
|
||||||
hostinfo, port->user_name),
|
|
||||||
HOSTNAME_LOOKUP_DETAIL(port)));
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
|
||||||
#ifdef USE_SSL
|
|
||||||
ereport(FATAL,
|
ereport(FATAL,
|
||||||
(errcode(ERRCODE_INVALID_AUTHORIZATION_SPECIFICATION),
|
(errcode(ERRCODE_INVALID_AUTHORIZATION_SPECIFICATION),
|
||||||
|
/* translator: last %s describes encryption state */
|
||||||
errmsg("no pg_hba.conf entry for host \"%s\", user \"%s\", database \"%s\", %s",
|
errmsg("no pg_hba.conf entry for host \"%s\", user \"%s\", database \"%s\", %s",
|
||||||
hostinfo, port->user_name,
|
hostinfo, port->user_name,
|
||||||
port->database_name,
|
port->database_name,
|
||||||
port->ssl_in_use ? _("SSL on") : _("SSL off")),
|
encryption_state),
|
||||||
HOSTNAME_LOOKUP_DETAIL(port)));
|
HOSTNAME_LOOKUP_DETAIL(port)));
|
||||||
#else
|
|
||||||
ereport(FATAL,
|
|
||||||
(errcode(ERRCODE_INVALID_AUTHORIZATION_SPECIFICATION),
|
|
||||||
errmsg("no pg_hba.conf entry for host \"%s\", user \"%s\", database \"%s\"",
|
|
||||||
hostinfo, port->user_name,
|
|
||||||
port->database_name),
|
|
||||||
HOSTNAME_LOOKUP_DETAIL(port)));
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user