Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1u0OtS-000JRQ-Dc for pgsql-hackers@arkaria.postgresql.org; Thu, 03 Apr 2025 18:02:22 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1u0OtR-009Vmh-1N for pgsql-hackers@arkaria.postgresql.org; Thu, 03 Apr 2025 18:02:21 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1u0OtQ-009VmZ-IO for pgsql-hackers@lists.postgresql.org; Thu, 03 Apr 2025 18:02:20 +0000 Received: from mail-qv1-xf31.google.com ([2607:f8b0:4864:20::f31]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1u0OtM-002mAH-2f for pgsql-hackers@postgresql.org; Thu, 03 Apr 2025 18:02:18 +0000 Received: by mail-qv1-xf31.google.com with SMTP id 6a1803df08f44-6ecfc2cb1aaso11848906d6.3 for ; Thu, 03 Apr 2025 11:02:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb.com; s=google; t=1743703335; x=1744308135; darn=postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=23+HLtU0D8Z4OlAWPrYia77d3HlmFqRoFMX9X2w1kV0=; b=kEJlsbiazHJIylvyuDxedJ7lN/lkimgV+ohTzyR6oJq9sWEcGa6SBzOdLa7kISBauW IWqDDpS2ixQdBoMvOl4XRWhKOCR8WibR/CuppAP9dnvuxerqre/bLCFYe7yv59x9MduL RZtZikp446aaYbn/w9VJU/4gvdgOzSeStPOrSBWy3E/Teez+iVQwxuUJPBCgDAiAXW3f T6Kr+VHcUc9Nc65m+9wylCUKZrmF0Qpuw1jmEJmvimU44+g5q7qHKx6exGx5bgfXJDlS ZXeyP6VToiggr5Xnp8vVyEFS/pBLWnNacPqaArUjkgzCPPmDCHgOw75wqeNW7Ggxz83t btlw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743703335; x=1744308135; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=23+HLtU0D8Z4OlAWPrYia77d3HlmFqRoFMX9X2w1kV0=; b=ZHgl13xWVkCMloKorwlbecGU5RR7qjMBu/IhJyyecVTrGKSXbPpnLq4c8p5NNp5cyu hcWIM+PaOsw6qLmG6L1Dq+yOHAu4WeTwKnaPxiAOxqAoAXeP5LdKrpRsYupDkch5Q8my DDvBNMEQGMZHYUANRuLpI1lUxUeUZhYGJF+EVJIj58EvbqywWXmrX+TN1NjwwcTLjjce Pccf0zAYd5ge7P96vXStVAb7rX1hPHzDvVQQQYUfIhSsD1dhRBeDlI7Dg5ADKKyklAnS f2YSB4yJigFZX5vX441NMXcBiYZjVsP1qIoyP/R/CzF4SgcpcWvguhdfrvRMBEI6uPyI Fbfw== X-Forwarded-Encrypted: i=1; AJvYcCV6ZHo9ClN1gCG3Z3srBROECTlUs8oY7B+uqEfhJqIQgpdKVuAqFPEH8zxpAqX0VfnigUnVbmOO84pmsOVJ@postgresql.org X-Gm-Message-State: AOJu0YxZBs9WQ+Tktba05H4puuptsaU02dVa7TcCUwFSqWasIY3qabv5 GxUL1D/gxjB23bmGpZ27IHNMkfJ5WXz6AX+hjDLrXa2K0a5AI/5RHFyn9S18EbfrBX3GVk0BicQ ErvI9GxWOyldCqQ9Rj4KjRa0/su4z3NqHl1C4 X-Gm-Gg: ASbGncsS7my2I7rqZJVwaYgY0T5gkl0NEhB5XXAQ+RZTsqAxapmSilPGvu60oCLSq8l xU1iOqNH4I/gf+Jt+oWA6sW+JqN1em7U8DcHkdTLZ8qM+T0VJSRtxltMYwlFJmgJ0pWOmhSGgIS SVzaxTskVRBAN9jhoBOmVESHp7 X-Google-Smtp-Source: AGHT+IEbR+uhohfBo3RZ+hKSLkKXLNjMK3DGJAgXqiJcVKh8grDIfx1VCX1HXLYY+k2JXeLtr/oQx/sFF/hq5st9xZQ= X-Received: by 2002:ad4:5c46:0:b0:6ec:f51f:30e9 with SMTP id 6a1803df08f44-6f00deb3d8cmr2594496d6.4.1743703335209; Thu, 03 Apr 2025 11:02:15 -0700 (PDT) MIME-Version: 1.0 References: <83C44AB4-24B0-437F-B139-B5CBC5821BB1@yesql.se> <2A1511A0-C04B-47E4-B1C3-54C2A1C765B8@yesql.se> <13F329B6-86BC-40A5-96F4-102784A0357A@yesql.se> In-Reply-To: From: Jacob Champion Date: Thu, 3 Apr 2025 11:02:03 -0700 X-Gm-Features: ATxdqUEaMlWNKPkTs9nhR42OTgp_Xt_Zmr4fGbreXx4B7tWVkHg3DxUu7siX8m4 Message-ID: Subject: Re: [PoC] Federated Authn/z with OAUTHBEARER To: Thomas Munro Cc: Nazir Bilal Yavuz , Andres Freund , Daniel Gustafsson , Peter Eisentraut , Antonin Houska , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="000000000000e3bafa0631e3918b" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000e3bafa0631e3918b Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, Mar 18, 2025 at 9:09=E2=80=AFPM Thomas Munro wrote: > All pushed (wasn't sure if Daniel was going to but once I got tangled > up in all that kqueue stuff he probably quite reasonably assumed that > I would :-)). Attached are two more followups, separate from the libcurl split: - 0001 is a patch originally proposed at [1]. Christoph pointed out that the build fails on a platform that tries to enable Curl without having either epoll() or kqueue(), due to a silly mistake I made in the #ifdefs. - 0002 should fix some timeouts in 002_client.pl reported by Andres on Discord. I allowed a short connect_timeout to propagate into tests which should not have it. (The goal of 0001 is to get things building for now. After I finish splitting the implementation into its own module, it'll make more sense to simply not build that module on platforms that can't implement a useful flow.) Thanks, --Jacob [1] https://postgr.es/m/CAOYmi%2B%3D4898tXuTvb2LstorRo9JsAnBcn8LE%3DqrgVPiP= W8ZfCw%40mail.gmail.com --000000000000e3bafa0631e3918b Content-Type: application/octet-stream; name="0002-oauth-Remove-unneeded-timeouts-from-t-002_client.patch" Content-Disposition: attachment; filename="0002-oauth-Remove-unneeded-timeouts-from-t-002_client.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m91nu5dr1 RnJvbSA2NWMwM2M2NDkwODRmOWE3YjU0ZDE3MmRjMTRmNDQyZTY4YjNhYWIwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKYWNvYiBDaGFtcGlvbiA8amFjb2IuY2hhbXBpb25AZW50ZXJw cmlzZWRiLmNvbT4KRGF0ZTogVGh1LCAzIEFwciAyMDI1IDEwOjEyOjQ1IC0wNzAwClN1YmplY3Q6 IFtQQVRDSCAyLzJdIG9hdXRoOiBSZW1vdmUgdW5uZWVkZWQgdGltZW91dHMgZnJvbSB0LzAwMl9j bGllbnQKClRoZSBjb25uZWN0X3RpbWVvdXQ9MSBzZXR0aW5nIGZvciB0aGUgLS1oYW5nLWZvcmV2 ZXIgdGVzdCB3YXMga2VwdCBpbgpwbGFjZSBmb3IgbGF0ZXIgdGVzdHMsIGNhdXNpbmcgdW5leHBl Y3RlZCB0aW1lb3V0cyBvbiBzbG93ZXIgYnVpbGRmYXJtCmFuaW1hbHMuIFJlbW92ZSBpdC4KClJl cG9ydGVkLWJ5OiBBbmRyZXMgRnJldW5kIDxhbmRyZXNAYW5hcmF6ZWwuZGU+Ci0tLQogc3JjL3Rl c3QvbW9kdWxlcy9vYXV0aF92YWxpZGF0b3IvdC8wMDJfY2xpZW50LnBsIHwgMyArKysKIDEgZmls ZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVz L29hdXRoX3ZhbGlkYXRvci90LzAwMl9jbGllbnQucGwgYi9zcmMvdGVzdC9tb2R1bGVzL29hdXRo X3ZhbGlkYXRvci90LzAwMl9jbGllbnQucGwKaW5kZXggYWI4MzI1OGQ3MzYuLjU0NzY5ZjEyZjU3 IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9tb2R1bGVzL29hdXRoX3ZhbGlkYXRvci90LzAwMl9jbGll bnQucGwKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy9vYXV0aF92YWxpZGF0b3IvdC8wMDJfY2xpZW50 LnBsCkBAIC0xMjIsNiArMTIyLDkgQEAgdGVzdCgKIAlmbGFncyA9PiBbIi0taGFuZy1mb3JldmVy Il0sCiAJZXhwZWN0ZWRfc3RkZXJyID0+IHFyL2ZhaWxlZDogdGltZW91dCBleHBpcmVkLyk7CiAK KyMgUmVtb3ZlIHRoZSB0aW1lb3V0IGZvciBsYXRlciB0ZXN0cy4KKyRjb21tb25fY29ubnN0ciA9 ICIkYmFzZV9jb25uc3RyIG9hdXRoX2lzc3Vlcj0kaXNzdWVyIG9hdXRoX2NsaWVudF9pZD1teUlE IjsKKwogIyBUZXN0IHZhcmlvdXMgbWlzYmVoYXZpb3JzIG9mIHRoZSBjbGllbnQgaG9vay4KIG15 IEBjYXNlcyA9ICgKIAl7Ci0tIAoyLjM0LjEKCg== --000000000000e3bafa0631e3918b Content-Type: application/octet-stream; name="0001-oauth-Fix-build-on-platforms-without-epoll-kqueue.patch" Content-Disposition: attachment; filename="0001-oauth-Fix-build-on-platforms-without-epoll-kqueue.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m91nu5dj0 RnJvbSBhMWRhMGVhOTJjNzdmZGM1OWM0ZjE0ZTNhZjNiNWIwZjkzY2ZlNGRmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKYWNvYiBDaGFtcGlvbiA8amFjb2IuY2hhbXBpb25AZW50ZXJw cmlzZWRiLmNvbT4KRGF0ZTogTW9uLCAzMSBNYXIgMjAyNSAxNjowNzozMyAtMDcwMApTdWJqZWN0 OiBbUEFUQ0ggMS8yXSBvYXV0aDogRml4IGJ1aWxkIG9uIHBsYXRmb3JtcyB3aXRob3V0IGVwb2xs L2txdWV1ZQoKcmVnaXN0ZXJfc29ja2V0KCkgbWlzc2VkIGEgdmFyaWFibGUgZGVjbGFyYXRpb24g aWYgbmVpdGhlcgpIQVZFX1NZU19FUE9MTF9IIG5vciBIQVZFX1NZU19FVkVOVF9IIHdhcyBkZWZp bmVkLgoKV2hpbGUgd2UncmUgZml4aW5nIHRoYXQsIGFkanVzdCB0aGUgdGVzdHMgdG8gY2hlY2sg cGdfY29uZmlnLmggZm9yIG9uZQpvZiB0aGUgbXVsdGlwbGV4ZXIgaW1wbGVtZW50YXRpb25zLCBy YXRoZXIgdGhhbiBhc3N1bWluZyB0aGF0IFdpbmRvd3MgaXMKdGhlIG9ubHkgcGxhdGZvcm0gd2l0 aG91dCBzdXBwb3J0LiAoQ2hyaXN0b3BoIHJlcG9ydGVkIHRoaXMgb24KaHVyZC1hbWQ2NCwgYW4g ZXhwZXJpbWVudGFsIERlYmlhbi4pCgpSZXBvcnRlZC1ieTogQ2hyaXN0b3BoIEJlcmcgPG15b25A ZGViaWFuLm9yZz4KRGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9aLXNQRmwyN1kwWkMt VkJsJTQwbXNnLmRmN2NiLmRlCi0tLQogc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtYXV0aC1vYXV0 aC1jdXJsLmMgICAgICAgIHwgNCArKy0tCiBzcmMvdGVzdC9tb2R1bGVzL29hdXRoX3ZhbGlkYXRv ci90LzAwMV9zZXJ2ZXIucGwgfCA2ICsrKystLQogMiBmaWxlcyBjaGFuZ2VkLCA2IGluc2VydGlv bnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEv ZmUtYXV0aC1vYXV0aC1jdXJsLmMgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1hdXRoLW9hdXRo LWN1cmwuYwppbmRleCA5ZTBlOGE5ZjJiZS4uY2Q5YzAzMjNiYjYgMTAwNjQ0Ci0tLSBhL3NyYy9p bnRlcmZhY2VzL2xpYnBxL2ZlLWF1dGgtb2F1dGgtY3VybC5jCisrKyBiL3NyYy9pbnRlcmZhY2Vz L2xpYnBxL2ZlLWF1dGgtb2F1dGgtY3VybC5jCkBAIC0xMTcyLDggKzExNzIsOSBAQCBzdGF0aWMg aW50CiByZWdpc3Rlcl9zb2NrZXQoQ1VSTCAqY3VybCwgY3VybF9zb2NrZXRfdCBzb2NrZXQsIGlu dCB3aGF0LCB2b2lkICpjdHgsCiAJCQkJdm9pZCAqc29ja2V0cCkKIHsKLSNpZmRlZiBIQVZFX1NZ U19FUE9MTF9ICiAJc3RydWN0IGFzeW5jX2N0eCAqYWN0eCA9IGN0eDsKKworI2lmZGVmIEhBVkVf U1lTX0VQT0xMX0gKIAlzdHJ1Y3QgZXBvbGxfZXZlbnQgZXYgPSB7MH07CiAJaW50CQkJcmVzOwog CWludAkJCW9wID0gRVBPTExfQ1RMX0FERDsKQEAgLTEyMzEsNyArMTIzMiw2IEBAIHJlZ2lzdGVy X3NvY2tldChDVVJMICpjdXJsLCBjdXJsX3NvY2tldF90IHNvY2tldCwgaW50IHdoYXQsIHZvaWQg KmN0eCwKIAlyZXR1cm4gMDsKICNlbmRpZgogI2lmZGVmIEhBVkVfU1lTX0VWRU5UX0gKLQlzdHJ1 Y3QgYXN5bmNfY3R4ICphY3R4ID0gY3R4OwogCXN0cnVjdCBrZXZlbnQgZXZbMl0gPSB7MH07CiAJ c3RydWN0IGtldmVudCBldl9vdXRbMl07CiAJc3RydWN0IHRpbWVzcGVjIHRpbWVvdXQgPSB7MH07 CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVzL29hdXRoX3ZhbGlkYXRvci90LzAwMV9zZXJ2 ZXIucGwgYi9zcmMvdGVzdC9tb2R1bGVzL29hdXRoX3ZhbGlkYXRvci90LzAwMV9zZXJ2ZXIucGwK aW5kZXggMzAyOTUzNjRlYmQuLmQ4ODk5NGFiYzI0IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9tb2R1 bGVzL29hdXRoX3ZhbGlkYXRvci90LzAwMV9zZXJ2ZXIucGwKKysrIGIvc3JjL3Rlc3QvbW9kdWxl cy9vYXV0aF92YWxpZGF0b3IvdC8wMDFfc2VydmVyLnBsCkBAIC0yNiw5ICsyNiwxMSBAQCBpZiAo ISRFTlZ7UEdfVEVTVF9FWFRSQX0gfHwgJEVOVntQR19URVNUX0VYVFJBfSAhfiAvXGJvYXV0aFxi LykKIAkgICdQb3RlbnRpYWxseSB1bnNhZmUgdGVzdCBvYXV0aCBub3QgZW5hYmxlZCBpbiBQR19U RVNUX0VYVFJBJzsKIH0KIAotaWYgKCR3aW5kb3dzX29zKQordW5sZXNzIChjaGVja19wZ19jb25m aWcoIiNkZWZpbmUgSEFWRV9TWVNfRVZFTlRfSCAxIikKKwlvciBjaGVja19wZ19jb25maWcoIiNk ZWZpbmUgSEFWRV9TWVNfRVBPTExfSCAxIikpCiB7Ci0JcGxhbiBza2lwX2FsbCA9PiAnT0F1dGgg c2VydmVyLXNpZGUgdGVzdHMgYXJlIG5vdCBzdXBwb3J0ZWQgb24gV2luZG93cyc7CisJcGxhbiBz a2lwX2FsbCA9PgorCSAgJ09BdXRoIHNlcnZlci1zaWRlIHRlc3RzIGFyZSBub3Qgc3VwcG9ydGVk IG9uIHRoaXMgcGxhdGZvcm0nOwogfQogCiBpZiAoJEVOVnt3aXRoX2xpYmN1cmx9IG5lICd5ZXMn KQotLSAKMi4zNC4xCgo= --000000000000e3bafa0631e3918b--