diff --git a/README.md b/README.md index 98738bc2..a0071208 100644 --- a/README.md +++ b/README.md @@ -415,6 +415,15 @@ make build Carson Yang + + + kundel/ +
+ kundel +
+ + + Felix @@ -422,8 +431,6 @@ make build Felix Kronlage-Dammers - - Felix @@ -445,6 +452,13 @@ make build Jamie Greeff + + + Jiang +
+ Jiang Zhu +
+ Jim @@ -452,6 +466,8 @@ make build Jim Tittsler + + Pierre @@ -466,8 +482,6 @@ make build rcursaru - - WhiteSource @@ -496,6 +510,8 @@ make build Tanner + + Teteros/ @@ -510,8 +526,6 @@ make build The Gitter Badger - - Tianon @@ -540,6 +554,8 @@ make build Zakhar Bessarab + + ZiYuan/ @@ -554,8 +570,6 @@ make build derelm - - henning @@ -584,6 +598,8 @@ make build pernila + + Wakeful-Cloud/ diff --git a/api_key.go b/api_key.go index 41c83857..c1bbce2d 100644 --- a/api_key.go +++ b/api_key.go @@ -13,7 +13,6 @@ import ( const ( apiPrefixLength = 7 apiKeyLength = 32 - apiKeyParts = 2 errAPIKeyFailedToParse = Error("Failed to parse ApiKey") ) @@ -115,9 +114,9 @@ func (h *Headscale) ExpireAPIKey(key *APIKey) error { } func (h *Headscale) ValidateAPIKey(keyStr string) (bool, error) { - prefix, hash, err := splitAPIKey(keyStr) - if err != nil { - return false, fmt.Errorf("failed to validate api key: %w", err) + prefix, hash, found := strings.Cut(keyStr, ".") + if !found { + return false, errAPIKeyFailedToParse } key, err := h.GetAPIKey(prefix) @@ -136,15 +135,6 @@ func (h *Headscale) ValidateAPIKey(keyStr string) (bool, error) { return true, nil } -func splitAPIKey(key string) (string, string, error) { - parts := strings.Split(key, ".") - if len(parts) != apiKeyParts { - return "", "", errAPIKeyFailedToParse - } - - return parts[0], parts[1], nil -} - func (key *APIKey) toProto() *v1.ApiKey { protoKey := v1.ApiKey{ Id: key.ID,