mirror of
https://github.com/LBRYFoundation/tracker.git
synced 2025-08-23 17:47:29 +00:00
parent
3d8fc63df3
commit
7f7f2726b4
1 changed files with 30 additions and 25 deletions
|
@ -57,16 +57,26 @@ func NewHook(cfg Config) middleware.Hook {
|
||||||
closing: make(chan struct{}),
|
closing: make(chan struct{}),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
h.updateKeys()
|
||||||
go func() {
|
go func() {
|
||||||
for {
|
for {
|
||||||
select {
|
select {
|
||||||
case <-h.closing:
|
case <-h.closing:
|
||||||
return
|
return
|
||||||
case <-time.After(cfg.JWKUpdateInterval):
|
case <-time.After(cfg.JWKUpdateInterval):
|
||||||
resp, err := http.Get(cfg.JWKSetURL)
|
h.updateKeys()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
|
||||||
|
return h
|
||||||
|
}
|
||||||
|
|
||||||
|
func (h *hook) updateKeys() {
|
||||||
|
resp, err := http.Get(h.cfg.JWKSetURL)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Errorln("failed to fetch JWK Set: " + err.Error())
|
log.Errorln("failed to fetch JWK Set: " + err.Error())
|
||||||
continue
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
parsedJWKs := map[string]gojwk.Key{}
|
parsedJWKs := map[string]gojwk.Key{}
|
||||||
|
@ -74,7 +84,7 @@ func NewHook(cfg Config) middleware.Hook {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
resp.Body.Close()
|
resp.Body.Close()
|
||||||
log.Errorln("failed to decode JWK JSON: " + err.Error())
|
log.Errorln("failed to decode JWK JSON: " + err.Error())
|
||||||
continue
|
return
|
||||||
}
|
}
|
||||||
resp.Body.Close()
|
resp.Body.Close()
|
||||||
|
|
||||||
|
@ -83,17 +93,12 @@ func NewHook(cfg Config) middleware.Hook {
|
||||||
publicKey, err := parsedJWK.DecodePublicKey()
|
publicKey, err := parsedJWK.DecodePublicKey()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Errorln("failed to decode JWK into public key: " + err.Error())
|
log.Errorln("failed to decode JWK into public key: " + err.Error())
|
||||||
continue
|
return
|
||||||
}
|
}
|
||||||
keys[kid] = publicKey
|
keys[kid] = publicKey
|
||||||
}
|
}
|
||||||
h.publicKeys = keys
|
h.publicKeys = keys
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}()
|
|
||||||
|
|
||||||
return h
|
|
||||||
}
|
|
||||||
|
|
||||||
func (h *hook) Stop() <-chan error {
|
func (h *hook) Stop() <-chan error {
|
||||||
select {
|
select {
|
||||||
|
|
Loading…
Add table
Reference in a new issue