mirror of
https://github.com/pomerium/pomerium.git
synced 2025-05-10 15:47:36 +02:00
fix redirect loop, remove user/session services, remove duplicate deleted_at fields (#1162)
* fix redirect loop, remove user/session services, remove duplicate deleted_at fields * change loop * reuse err variable * wrap errors, use cookie timeout * wrap error, duplicate if
This commit is contained in:
parent
714363fb07
commit
97f85481f8
16 changed files with 288 additions and 918 deletions
|
@ -444,16 +444,10 @@ func (a *Authenticate) getSessionFromCtx(ctx context.Context) (*sessions.State,
|
|||
}
|
||||
|
||||
func (a *Authenticate) deleteSession(ctx context.Context, sessionID string) error {
|
||||
if a.sessionClient == nil {
|
||||
if a.dataBrokerClient == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
_, err := a.sessionClient.Add(ctx, &session.AddRequest{
|
||||
Session: &session.Session{
|
||||
Id: sessionID,
|
||||
DeletedAt: ptypes.TimestampNow(),
|
||||
},
|
||||
})
|
||||
err := session.Delete(ctx, a.dataBrokerClient, sessionID)
|
||||
return err
|
||||
}
|
||||
|
||||
|
@ -534,11 +528,11 @@ func (a *Authenticate) Dashboard(w http.ResponseWriter, r *http.Request) error {
|
|||
}
|
||||
|
||||
func (a *Authenticate) saveSessionToDataBroker(ctx context.Context, sessionState *sessions.State, accessToken *oauth2.Token) error {
|
||||
if a.sessionClient == nil || a.userClient == nil {
|
||||
if a.dataBrokerClient == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
sessionExpiry, _ := ptypes.TimestampProto(time.Now().Add(time.Hour))
|
||||
sessionExpiry, _ := ptypes.TimestampProto(time.Now().Add(a.cookieOptions.Expire))
|
||||
var idTokenExpiry *timestamppb.Timestamp
|
||||
if sessionState.Expiry != nil {
|
||||
idTokenExpiry, _ = ptypes.TimestampProto(sessionState.Expiry.Time())
|
||||
|
@ -570,17 +564,13 @@ func (a *Authenticate) saveSessionToDataBroker(ctx context.Context, sessionState
|
|||
if err != nil {
|
||||
return fmt.Errorf("authenticate: error retrieving user info: %w", err)
|
||||
}
|
||||
_, err = a.userClient.Add(ctx, &user.AddRequest{
|
||||
User: mu.User,
|
||||
})
|
||||
_, err = user.Set(ctx, a.dataBrokerClient, mu.User)
|
||||
if err != nil {
|
||||
return fmt.Errorf("authenticate: error saving user: %w", err)
|
||||
}
|
||||
}
|
||||
|
||||
res, err := a.sessionClient.Add(ctx, &session.AddRequest{
|
||||
Session: s,
|
||||
})
|
||||
res, err := session.Set(ctx, a.dataBrokerClient, s)
|
||||
if err != nil {
|
||||
return fmt.Errorf("authenticate: error saving session: %w", err)
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue