core/proxy: handle missing session for user info endpoint (#4769)

This commit is contained in:
Caleb Doxsey 2024-01-08 07:03:49 -07:00 committed by GitHub
parent b3cb21e13c
commit 2dbcf32cc6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 71 additions and 55 deletions

View file

@ -67,18 +67,16 @@ func (p *Proxy) getUserInfoData(r *http.Request) (handlers.UserInfoData, error)
}
ss, err := p.getSessionState(r)
if err != nil {
return handlers.UserInfoData{}, err
}
if err == nil {
data.Session, data.IsImpersonated, err = p.getSession(r.Context(), ss.ID)
if err != nil {
data.Session = &session.Session{Id: ss.ID}
}
data.Session, data.IsImpersonated, err = p.getSession(r.Context(), ss.ID)
if err != nil {
data.Session = &session.Session{Id: ss.ID}
}
data.User, err = p.getUser(r.Context(), data.Session.GetUserId())
if err != nil {
data.User = &user.User{Id: data.Session.GetUserId()}
data.User, err = p.getUser(r.Context(), data.Session.GetUserId())
if err != nil {
data.User = &user.User{Id: data.Session.GetUserId()}
}
}
data.WebAuthnCreationOptions, data.WebAuthnRequestOptions, _ = p.webauthn.GetOptions(r)