[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