mirror of
				https://github.com/juanfont/headscale.git
				synced 2025-10-28 10:51:44 +01:00 
			
		
		
		
	Merge pull request #619 from majst01/simplify-split
Use strings.Cut to simplify logic
This commit is contained in:
		
						commit
						e918ea89a3
					
				
							
								
								
									
										16
									
								
								api_key.go
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								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,
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user