[pdm-devel] [PATCH proxmox 3/3] proxmox-login: add compat mode to fallback to PBS3 ticket parsing
Christian Ebner
c.ebner at proxmox.com
Mon Sep 29 20:01:25 CEST 2025
On 9/29/25 5:48 PM, Christian Ebner wrote:
> The ticket info field is present for Proxmox Backup Server version 3
> login response data, the client however switches to http-only in this
> case.
>
> Allow to use the old authentication workflow instead by extending the
> compat mode by `Pbs3Ticket`, resulting in a full ticket instead of
> the http-only one.
>
> Signed-off-by: Christian Ebner <c.ebner at proxmox.com>
> ---
> proxmox-login/src/lib.rs | 21 ++++++++++++---------
> 1 file changed, 12 insertions(+), 9 deletions(-)
>
> diff --git a/proxmox-login/src/lib.rs b/proxmox-login/src/lib.rs
> index e7b8e023..93d09a8c 100644
> --- a/proxmox-login/src/lib.rs
> +++ b/proxmox-login/src/lib.rs
> @@ -58,6 +58,7 @@ pub enum CompatMode {
> #[default]
> Generic,
> PveTfa,
> + Pbs3Ticket,
> }
>
> fn normalize_url(mut api_url: String) -> String {
> @@ -216,15 +217,17 @@ impl Login {
> ));
> }
>
> - // `ticket_info` is set when the server sets the ticket via an HttpOnly cookie. this also
> - // means we do not have access to the cookie itself which happens for example in a browser.
> - // assume that the cookie is handled properly by the context (browser) and don't worry
> - // about handling it ourselves.
> - if let Some(ref ticket) = response.ticket_info {
> - let ticket = ticket.parse()?;
> - return Ok(TicketResult::HttpOnly(
> - self.authentication_for(ticket, response)?,
> - ));
> + if self.compat_mode == CompatMode::Pbs3Ticket {
This is wrong, should have been a check for !CompatMOde::Pbs3Ticket
Please disregard this series, I will send a v2..
More information about the pdm-devel
mailing list