Skip to content

Commit 6a1a31b

Browse files
committed
fix: set token ttl correctly in redis
1 parent e1d98b1 commit 6a1a31b

File tree

2 files changed

+7
-9
lines changed

2 files changed

+7
-9
lines changed

internal/sessions/session_maker.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,9 @@ func (sm *SessionMakerImpl) NewSession() (models.Session, error) {
3232
if session.IdleTTL() == time.Duration(0) {
3333
session.ExpiresAt = time.Time{}
3434
} else if session.MaxTTL() == time.Duration(0) {
35-
session.ExpiresAt = session.CreatedAt.Add(session.MaxTTL())
36-
} else {
3735
session.ExpiresAt = session.CreatedAt.Add(session.IdleTTL())
36+
} else {
37+
session.ExpiresAt = session.CreatedAt.Add(session.MaxTTL())
3838
}
3939
slog.Info("NEW SESSION", "session", session)
4040
return session, nil

internal/sessions/token_handling.go

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -135,11 +135,12 @@ func (sessions *SessionStore) SaveTokens(c echo.Context, session *models.Session
135135
session.TokenIDs = models.SerializableMap{}
136136
}
137137
session.TokenIDs[providerID] = tokens.AccessToken.ID
138-
expiresAt := sessions.getTokenStorageExpiration(tokens, *session)
138+
expiresAt := sessions.getTokenStorageExpiration(*session)
139139
err = sessions.tokenStore.SetAccessToken(c.Request().Context(), tokens.AccessToken)
140140
if err != nil {
141141
return err
142142
}
143+
c.Logger().Infof("setting expiry for access token %s to %s (%s)", providerID, expiresAt, session.MaxTTL())
143144
err = sessions.tokenStore.SetAccessTokenExpiry(c.Request().Context(), tokens.AccessToken, expiresAt)
144145
if err != nil {
145146
return err
@@ -148,6 +149,7 @@ func (sessions *SessionStore) SaveTokens(c echo.Context, session *models.Session
148149
if err != nil {
149150
return err
150151
}
152+
c.Logger().Infof("setting expiry for refresh token %s to %s (%s)", providerID, expiresAt, session.MaxTTL())
151153
err = sessions.tokenStore.SetRefreshTokenExpiry(c.Request().Context(), tokens.RefreshToken, expiresAt)
152154
if err != nil {
153155
return err
@@ -156,6 +158,7 @@ func (sessions *SessionStore) SaveTokens(c echo.Context, session *models.Session
156158
if err != nil {
157159
return err
158160
}
161+
c.Logger().Infof("setting expiry for id token %s to %s (%s)", providerID, expiresAt, session.MaxTTL())
159162
err = sessions.tokenStore.SetIDTokenExpiry(c.Request().Context(), tokens.IDToken, expiresAt)
160163
if err != nil {
161164
return err
@@ -175,11 +178,6 @@ func (*SessionStore) idTokenKey(tokenID string) string {
175178
return IDTokenCtxKey + ":" + tokenID
176179
}
177180

178-
// getTokenStorageExpiration returns the max session expiration unless the provider is Renku or GitLab, in which case there is no expiration
179-
func (*SessionStore) getTokenStorageExpiration(tokens models.AuthTokenSet, session models.Session) time.Time {
180-
providerID := tokens.AccessToken.ProviderID
181-
if providerID == "renku" || providerID == "gitlab" {
182-
return time.Time{}
183-
}
181+
func (*SessionStore) getTokenStorageExpiration(session models.Session) time.Time {
184182
return session.CreatedAt.Add(session.MaxTTL())
185183
}

0 commit comments

Comments
 (0)