forked from proxmox-mirrors/proxmox
proxmox-login: fix ticket userid check for PMG quarantine tickets
We simply strip the "@quarantine" at the end. Signed-off-by: Dietmar Maurer <dietmar@proxmox.com>
This commit is contained in:
parent
25024fa687
commit
9599cb6fd6
@ -57,6 +57,13 @@ fn normalize_url(mut api_url: String) -> String {
|
|||||||
api_url
|
api_url
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn check_ticket_userid(ticket_userid: &str, expected_userid: &str) -> Result<(), ResponseError> {
|
||||||
|
if ticket_userid != expected_userid.trim_end_matches("@quarantine") {
|
||||||
|
return Err("returned ticket contained unexpected userid".into());
|
||||||
|
}
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
impl Login {
|
impl Login {
|
||||||
/// Prepare a request given an existing ticket string.
|
/// Prepare a request given an existing ticket string.
|
||||||
pub fn renew(
|
pub fn renew(
|
||||||
@ -152,9 +159,7 @@ impl Login {
|
|||||||
|
|
||||||
Ok(match ticket {
|
Ok(match ticket {
|
||||||
TicketResponse::Full(ticket) => {
|
TicketResponse::Full(ticket) => {
|
||||||
if ticket.userid() != self.userid {
|
check_ticket_userid(ticket.userid(), &self.userid)?;
|
||||||
return Err("returned ticket contained unexpected userid".into());
|
|
||||||
}
|
|
||||||
TicketResult::Full(Authentication {
|
TicketResult::Full(Authentication {
|
||||||
csrfprevention_token: response
|
csrfprevention_token: response
|
||||||
.csrfprevention_token
|
.csrfprevention_token
|
||||||
@ -294,10 +299,7 @@ impl SecondFactorChallenge {
|
|||||||
}
|
}
|
||||||
|
|
||||||
let ticket: Ticket = response.ticket.ok_or("no ticket in response")?.parse()?;
|
let ticket: Ticket = response.ticket.ok_or("no ticket in response")?.parse()?;
|
||||||
|
check_ticket_userid(ticket.userid(), &self.userid)?;
|
||||||
if ticket.userid() != self.userid {
|
|
||||||
return Err("returned ticket contained unexpected userid".into());
|
|
||||||
}
|
|
||||||
|
|
||||||
Ok(Authentication {
|
Ok(Authentication {
|
||||||
ticket,
|
ticket,
|
||||||
|
Loading…
Reference in New Issue
Block a user