Files
new-api/common/user_session_test.go
Calcium-Ion 31d70fca39 refactor(auth): replace dashboard sessions with stateless tokens and session control (#6329)
* refactor(auth): replace dashboard sessions with stateless tokens

* feat(auth): harden session issuance and distributed enforcement

* fix(proxy): preserve trusted proxy compatibility defaults

* refactor: address dashboard auth review feedback

* refactor: remove classic frontend and flatten web app
2026-07-20 16:48:43 +08:00

61 lines
2.6 KiB
Go

package common
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestInitUserSessionSettingsUsesPositiveFallbacksAndClampsWindow(t *testing.T) {
previousActiveLimit := UserSessionActiveLimit
previousIssuanceLimit := UserSessionIssuanceLimit
previousIssuanceWindow := UserSessionIssuanceWindowSeconds
previousRevokedRetention := UserSessionRevokedRetentionDays
previousAlertThreshold := UserSessionHourlyAlertThreshold
t.Cleanup(func() {
UserSessionActiveLimit = previousActiveLimit
UserSessionIssuanceLimit = previousIssuanceLimit
UserSessionIssuanceWindowSeconds = previousIssuanceWindow
UserSessionRevokedRetentionDays = previousRevokedRetention
UserSessionHourlyAlertThreshold = previousAlertThreshold
})
t.Setenv("USER_SESSION_ACTIVE_LIMIT", "0")
t.Setenv("USER_SESSION_ISSUANCE_LIMIT", "-2")
t.Setenv("USER_SESSION_ISSUANCE_WINDOW_SECONDS", "invalid")
t.Setenv("USER_SESSION_REVOKED_RETENTION_DAYS", "0")
t.Setenv("USER_SESSION_HOURLY_ALERT_THRESHOLD", "-1")
initUserSessionSettings()
assert.Equal(t, DefaultUserSessionActiveLimit, UserSessionActiveLimit)
assert.Equal(t, DefaultUserSessionIssuanceLimit, UserSessionIssuanceLimit)
assert.Equal(t, int64(DefaultUserSessionIssuanceWindowSeconds), UserSessionIssuanceWindowSeconds)
assert.Equal(t, DefaultUserSessionRevokedRetentionDays, UserSessionRevokedRetentionDays)
assert.Equal(t, DefaultUserSessionHourlyAlertThreshold, UserSessionHourlyAlertThreshold)
t.Setenv("USER_SESSION_ACTIVE_LIMIT", "12")
t.Setenv("USER_SESSION_ISSUANCE_LIMIT", "34")
t.Setenv("USER_SESSION_ISSUANCE_WINDOW_SECONDS", "172800")
t.Setenv("USER_SESSION_REVOKED_RETENTION_DAYS", "1")
t.Setenv("USER_SESSION_HOURLY_ALERT_THRESHOLD", "56")
initUserSessionSettings()
assert.Equal(t, 12, UserSessionActiveLimit)
assert.Equal(t, 34, UserSessionIssuanceLimit)
assert.Equal(t, int64(24*60*60), UserSessionIssuanceWindowSeconds)
assert.Equal(t, 1, UserSessionRevokedRetentionDays)
assert.Equal(t, 56, UserSessionHourlyAlertThreshold)
t.Setenv("USER_SESSION_ISSUANCE_WINDOW_SECONDS", "43200")
initUserSessionSettings()
assert.Equal(t, int64(12*60*60), UserSessionIssuanceWindowSeconds, "a window below retention remains unchanged")
t.Setenv("USER_SESSION_ISSUANCE_WINDOW_SECONDS", "86400")
initUserSessionSettings()
assert.Equal(t, int64(24*60*60), UserSessionIssuanceWindowSeconds, "a window equal to retention remains unchanged")
t.Setenv("USER_SESSION_REVOKED_RETENTION_DAYS", "9223372036854775807")
initUserSessionSettings()
assert.Equal(t, DefaultUserSessionRevokedRetentionDays, UserSessionRevokedRetentionDays)
}