chore: improve error handling
This commit is contained in:
parent
e2ac1ad707
commit
a1393ca3b8
18
auth/oidc.go
18
auth/oidc.go
@ -90,29 +90,29 @@ func (o *OAuthClient) HandleAuthCallback(r *http.Request, usr users.Store, srv *
|
|||||||
|
|
||||||
// Validate state
|
// Validate state
|
||||||
if code == "" || stateQuery == "" || err != nil || stateQuery != stateCookie.Value {
|
if code == "" || stateQuery == "" || err != nil || stateQuery != stateCookie.Value {
|
||||||
log.Fatal("Invalid request")
|
log.Println("oidc invalid callback request")
|
||||||
return nil, os.ErrPermission
|
return nil, os.ErrPermission
|
||||||
}
|
}
|
||||||
|
|
||||||
// Exchange code for token
|
// Exchange code for token
|
||||||
oauth2Token, err := o.OAuth2Config.Exchange(context.Background(), code)
|
oauth2Token, err := o.OAuth2Config.Exchange(context.Background(), code)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Printf("oidc code exchange failed: %s", err)
|
||||||
return nil, err
|
return nil, os.ErrPermission
|
||||||
}
|
}
|
||||||
|
|
||||||
// Parse id token
|
// Parse id token
|
||||||
rawIDToken, ok := oauth2Token.Extra("id_token").(string)
|
rawIDToken, ok := oauth2Token.Extra("id_token").(string)
|
||||||
if !ok {
|
if !ok {
|
||||||
log.Fatal("Invalid token")
|
log.Println("oidc id token extract failed")
|
||||||
return nil, os.ErrPermission
|
return nil, os.ErrPermission
|
||||||
}
|
}
|
||||||
|
|
||||||
// Verify id token
|
// Verify id token
|
||||||
idToken, err := o.Verifier.Verify(context.Background(), rawIDToken)
|
idToken, err := o.Verifier.Verify(context.Background(), rawIDToken)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal("oidc verify failed")
|
log.Printf("oidc token verify failed: %s", err)
|
||||||
return nil, err
|
return nil, os.ErrPermission
|
||||||
}
|
}
|
||||||
|
|
||||||
// Extract claims
|
// Extract claims
|
||||||
@ -123,8 +123,8 @@ func (o *OAuthClient) HandleAuthCallback(r *http.Request, usr users.Store, srv *
|
|||||||
Profile string `json:"profile"`
|
Profile string `json:"profile"`
|
||||||
}
|
}
|
||||||
if err := idToken.Claims(&claims); err != nil {
|
if err := idToken.Claims(&claims); err != nil {
|
||||||
log.Fatal(err)
|
log.Printf("oidc extract claims failed: %s", err)
|
||||||
return nil, err
|
return nil, os.ErrPermission
|
||||||
}
|
}
|
||||||
|
|
||||||
// Find filebrowser user by oidc username
|
// Find filebrowser user by oidc username
|
||||||
@ -134,7 +134,7 @@ func (o *OAuthClient) HandleAuthCallback(r *http.Request, usr users.Store, srv *
|
|||||||
return nil, os.ErrPermission
|
return nil, os.ErrPermission
|
||||||
}
|
}
|
||||||
u.AuthSource = "oidc"
|
u.AuthSource = "oidc"
|
||||||
log.Println("oidc success (user, claims) ", u.Username, claims)
|
log.Printf("oidc authenticated user %s", u.Username)
|
||||||
|
|
||||||
return u, nil
|
return u, nil
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user