feat: add ban policy to ticket verification

This commit is contained in:
Josh Creek
2026-08-31 22:28:45 +01:00
parent 8253d772cb
commit 4d3a8cc217
3 changed files with 37 additions and 3 deletions
+19
View File
@@ -38,6 +38,25 @@ func TestTicketVerifierBindsAppIdentityExpiryAndSingleUse(t *testing.T) {
}
}
func TestTicketVerifierRejectsBannedIdentityBeforeConsumption(t *testing.T) {
now := time.Unix(1000, 0)
verifier, _ := NewTicketVerifier(480)
if err := verifier.SetBanned("player-1", true); err != nil {
t.Fatal(err)
}
ticket := SteamTicket{TicketID: "ticket-1", SteamID: "steam-1", AppID: 480, ExpiresAt: now.Add(time.Minute)}
resolve := func(string) (string, bool) { return "player-1", true }
if _, err := verifier.Verify(ticket, resolve, now); !errors.Is(err, ErrTicketRejected) {
t.Fatalf("banned ticket accepted: %v", err)
}
if err := verifier.SetBanned("player-1", false); err != nil {
t.Fatal(err)
}
if _, err := verifier.Verify(ticket, resolve, now); err != nil {
t.Fatalf("unbanned ticket remained consumed: %v", err)
}
}
func TestSessionIsOpaqueShortLivedAndRevocable(t *testing.T) {
now := time.Unix(1000, 0)
store := NewSessionStore()