Expire expired tokens.

We now remove a token a week after it has expired.
This commit is contained in:
Juliusz Chroboczek
2023-04-04 01:03:02 +02:00
parent e93642f9db
commit adf273f9ea
4 changed files with 128 additions and 16 deletions
+33
View File
@@ -355,3 +355,36 @@ func (state *state) List(group string) ([]*Stateful, error) {
func List(group string) ([]*Stateful, error) {
return tokens.List(group)
}
func (state *state) Expire() error {
state.mu.Lock()
defer state.mu.Unlock()
err := state.load()
if err != nil {
return err
}
now := time.Now()
cutoff := now.Add(-time.Hour * 24 * 7)
modified := false
for k, t := range state.tokens {
if t.Expires.Before(cutoff) {
delete(state.tokens, k)
modified = true
}
}
if modified {
err := state.rewrite()
if err != nil {
return err
}
}
return nil
}
func Expire() error {
return tokens.Expire()
}