Merge pull request #20 from passbolt/fix_mfa_detection

Fix MFA detection with custom APP_BASE
This commit is contained in:
Samuel Lorch 2024-08-13 11:27:43 +02:00 committed by GitHub
commit 83ba14250b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -5,6 +5,7 @@ import (
"encoding/json" "encoding/json"
"fmt" "fmt"
"net/http" "net/http"
"strings"
) )
// APIResponse is the Struct representation of a Json Response // APIResponse is the Struct representation of a Json Response
@ -62,7 +63,7 @@ start:
if res.Header.Status == "success" { if res.Header.Status == "success" {
return r, &res, nil return r, &res, nil
} else if res.Header.Status == "error" { } else if res.Header.Status == "error" {
if res.Header.Code == 403 && res.Header.URL == "/mfa/verify/error.json" { if res.Header.Code == 403 && strings.HasSuffix(res.Header.URL, "/mfa/verify/error.json") {
if !firstTime { if !firstTime {
// if we are here this probably means that the MFA callback is broken, to prevent a infinite loop lets error here // if we are here this probably means that the MFA callback is broken, to prevent a infinite loop lets error here
return r, &res, fmt.Errorf("Got MFA challenge twice in a row, is your MFA Callback broken? Bailing to prevent loop...:") return r, &res, fmt.Errorf("Got MFA challenge twice in a row, is your MFA Callback broken? Bailing to prevent loop...:")