From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <pdm-devel-bounces@lists.proxmox.com> Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id B9EC31FF168 for <inbox@lore.proxmox.com>; Tue, 4 Mar 2025 13:10:12 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 30A661E2F5; Tue, 4 Mar 2025 13:10:09 +0100 (CET) From: Shannon Sterz <s.sterz@proxmox.com> To: pdm-devel@lists.proxmox.com Date: Tue, 4 Mar 2025 13:05:05 +0100 Message-Id: <20250304120506.135617-21-s.sterz@proxmox.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250304120506.135617-1-s.sterz@proxmox.com> References: <20250304120506.135617-1-s.sterz@proxmox.com> MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL -0.018 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: [pdm-devel] [PATCH yew-comp v4 20/21] http helpers: ask server to remove `__Host-` prefixed cookie on logout X-BeenThere: pdm-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Datacenter Manager development discussion <pdm-devel.lists.proxmox.com> List-Unsubscribe: <https://lists.proxmox.com/cgi-bin/mailman/options/pdm-devel>, <mailto:pdm-devel-request@lists.proxmox.com?subject=unsubscribe> List-Archive: <http://lists.proxmox.com/pipermail/pdm-devel/> List-Post: <mailto:pdm-devel@lists.proxmox.com> List-Help: <mailto:pdm-devel-request@lists.proxmox.com?subject=help> List-Subscribe: <https://lists.proxmox.com/cgi-bin/mailman/listinfo/pdm-devel>, <mailto:pdm-devel-request@lists.proxmox.com?subject=subscribe> Reply-To: Proxmox Datacenter Manager development discussion <pdm-devel@lists.proxmox.com> Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: pdm-devel-bounces@lists.proxmox.com Sender: "pdm-devel" <pdm-devel-bounces@lists.proxmox.com> when clearing the authentication data, we can no longer remove the cookie that stores the ticket once it is properly protected. so ask the server to do this for us. Signed-off-by: Shannon Sterz <s.sterz@proxmox.com> --- src/http_helpers.rs | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/http_helpers.rs b/src/http_helpers.rs index e2489cc..b1425d5 100644 --- a/src/http_helpers.rs +++ b/src/http_helpers.rs @@ -148,11 +148,19 @@ pub fn http_get_auth() -> Option<Authentication> { CLIENT.with(move |c| c.borrow().get_auth()) } +thread_local! { + static LOGOUT_GUARD: RefCell<Option<AsyncAbortGuard>> = const { RefCell::new(None) }; +} + pub fn http_clear_auth() { - CLIENT.with(move |c| { - c.borrow_mut().clear_auth(); - crate::clear_auth_cookie(c.borrow().product().auth_cookie_name()); + let abort_guard = AsyncAbortGuard::spawn(async move { + let client = CLIENT.with(|c| Rc::clone(&*c.borrow())); + let _ = client.logout().await; + client.clear_auth(); + crate::clear_auth_cookie(client.product().auth_cookie_name()); }); + + LOGOUT_GUARD.with_borrow_mut(|v| *v = Some(abort_guard)); } pub async fn http_login( -- 2.39.5 _______________________________________________ pdm-devel mailing list pdm-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pdm-devel