1
0
mirror of https://github.com/postgres/postgres.git synced 2025-04-24 10:47:04 +03:00
Peter Eisentraut 761c79508e postgres_fdw: SCRAM authentication pass-through
This enables SCRAM authentication for postgres_fdw when connecting to
a foreign server without having to store a plain-text password on user
mapping options.

This is done by saving the SCRAM ClientKey and ServeryKey from the
client authentication and using those instead of the plain-text
password for the server-side SCRAM exchange.  The new foreign-server
or user-mapping option "use_scram_passthrough" enables this.

Co-authored-by: Matheus Alcantara <mths.dev@pm.me>
Co-authored-by: Peter Eisentraut <peter@eisentraut.org>
Discussion: https://www.postgresql.org/message-id/flat/27b29a35-9b96-46a9-bc1a-914140869dac@gmail.com
2025-01-15 17:58:05 +01:00

50 lines
1.1 KiB
Meson

# Copyright (c) 2022-2025, PostgreSQL Global Development Group
postgres_fdw_sources = files(
'connection.c',
'deparse.c',
'option.c',
'postgres_fdw.c',
'shippable.c',
)
if host_system == 'windows'
postgres_fdw_sources += rc_lib_gen.process(win32ver_rc, extra_args: [
'--NAME', 'postgres_fdw',
'--FILEDESC', 'postgres_fdw - foreign data wrapper for PostgreSQL',])
endif
postgres_fdw = shared_module('postgres_fdw',
postgres_fdw_sources,
kwargs: contrib_mod_args + {
'dependencies': contrib_mod_args['dependencies'] + [libpq],
},
)
contrib_targets += postgres_fdw
install_data(
'postgres_fdw.control',
'postgres_fdw--1.0.sql',
'postgres_fdw--1.0--1.1.sql',
'postgres_fdw--1.1--1.2.sql',
kwargs: contrib_data_args,
)
tests += {
'name': 'postgres_fdw',
'sd': meson.current_source_dir(),
'bd': meson.current_build_dir(),
'regress': {
'sql': [
'postgres_fdw',
'query_cancel',
],
'regress_args': ['--dlpath', meson.build_root() / 'src/test/regress'],
},
'tap': {
'tests': [
't/001_auth_scram.pl',
],
},
}