From: Shannon Sterz <s.sterz@proxmox.com>
To: pbs-devel@lists.proxmox.com
Subject: [pbs-devel] Superseded: Re: [PATCH proxmox] login: use `ticket` if both it and `ticket_info` are provided
Date: Wed, 1 Oct 2025 15:28:36 +0200 [thread overview]
Message-ID: <84f90d94-12a7-473b-a366-94c1162fa526@proxmox.com> (raw)
In-Reply-To: <20250520085549.56525-1-s.sterz@proxmox.com>
Superseded-by:
https://lore.proxmox.com/all/20251001131102.266920-1-s.sterz@proxmox.com/T/#u
On 5/20/25 10:55, Shannon Sterz wrote:
> previously the precense of `ticket_info` was assumed to indicate the
> HTTPOnly authentication flow. the `ticket` field was ignore in that
> case, because the client has no way of validating a ticket anyway.
>
> this commit changes the behaviour to assume that the server is not
> trying to "trick us" and that the presence of a `ticket` field
> indicates that this value should be used for authentication. if the
> `ticket_info` field is also present, the field will be ignored.
>
> Signed-off-by: Shannon Sterz <s.sterz@proxmox.com>
> ---
>
> this is basically a different approach to fixing an issue that occured
> when a server also returned a `ticket_info` field but was still using
> the non-HTTPOnly auth flow [1]. while this shouldn't be strictly
> necessary, it shouldn't hurt either.
>
> [1]: https://lore.proxmox.com/all/20250516131122.276231-1-s.sterz@proxmox.com/
>
> proxmox-login/src/lib.rs | 26 ++++++++++++++------------
> 1 file changed, 14 insertions(+), 12 deletions(-)
>
> diff --git a/proxmox-login/src/lib.rs b/proxmox-login/src/lib.rs
> index e97ece7b..710434d6 100644
> --- a/proxmox-login/src/lib.rs
> +++ b/proxmox-login/src/lib.rs
> @@ -200,22 +200,24 @@ 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)?,
> - ));
> - }
> -
> // old authentication flow where we needed to handle the ticket ourselves even in the
> // browser etc.
> let ticket: TicketResponse = match response.ticket {
> Some(ref ticket) => ticket.parse()?,
> - None => return Err("no ticket information in response".into()),
> + None => {
> + // `ticket_info` is set when the server sets the ticket via a 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)?,
> + ));
> + }
> +
> + return Err("no ticket information in response".into());
> + }
> };
>
> Ok(match ticket {
> --
> 2.39.5
>
>
>
> _______________________________________________
> pbs-devel mailing list
> pbs-devel@lists.proxmox.com
> https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel
>
>
_______________________________________________
pbs-devel mailing list
pbs-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel
prev parent reply other threads:[~2025-10-01 13:28 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-05-20 8:55 [pbs-devel] " Shannon Sterz
2025-10-01 13:28 ` Shannon Sterz [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=84f90d94-12a7-473b-a366-94c1162fa526@proxmox.com \
--to=s.sterz@proxmox.com \
--cc=pbs-devel@lists.proxmox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.