Compare commits

...

1 Commits

Author SHA1 Message Date
Michael Yang
70d31c1e9a use timestamp from challenge, fallback to local time 2024-06-25 10:20:25 -07:00
2 changed files with 15 additions and 7 deletions

View File

@ -23,6 +23,7 @@ type registryChallenge struct {
Realm string
Service string
Scope string
Timestamp time.Time
}
func (r registryChallenge) URL() (*url.URL, error) {
@ -37,7 +38,7 @@ func (r registryChallenge) URL() (*url.URL, error) {
values.Add("scope", s)
}
values.Add("ts", strconv.FormatInt(time.Now().Unix(), 10))
values.Add("ts", strconv.FormatInt(r.Timestamp.Unix(), 10))
nonce, err := auth.NewNonce(rand.Reader, 16)
if err != nil {

View File

@ -21,6 +21,7 @@ import (
"slices"
"strconv"
"strings"
"time"
"github.com/ollama/ollama/api"
"github.com/ollama/ollama/auth"
@ -1111,10 +1112,16 @@ func getValue(header, key string) string {
func parseRegistryChallenge(authStr string) registryChallenge {
authStr = strings.TrimPrefix(authStr, "Bearer ")
s, err := strconv.ParseInt(getValue(authStr, "timestamp"), 10, 64)
if err != nil {
s = time.Now().Unix()
}
return registryChallenge{
Realm: getValue(authStr, "realm"),
Service: getValue(authStr, "service"),
Scope: getValue(authStr, "scope"),
Timestamp: time.Unix(s, 0),
}
}