storage/kubernetes: fix hash initialization bug

This commit is contained in:
Eric Chiang 2017-02-24 12:55:04 -08:00
parent 25b902b0c2
commit 1da2ae279c
2 changed files with 17 additions and 3 deletions

View File

@ -72,9 +72,10 @@ func idToName(s string, h func() hash.Hash) string {
} }
func offlineTokenName(userID string, connID string, h func() hash.Hash) string { func offlineTokenName(userID string, connID string, h func() hash.Hash) string {
h().Write([]byte(userID)) hash := h()
h().Write([]byte(connID)) hash.Write([]byte(userID))
return strings.TrimRight(encoding.EncodeToString(h().Sum(nil)), "=") hash.Write([]byte(connID))
return strings.TrimRight(encoding.EncodeToString(hash.Sum(nil)), "=")
} }
func (c *client) urlFor(apiVersion, namespace, resource, name string) string { func (c *client) urlFor(apiVersion, namespace, resource, name string) string {

View File

@ -29,6 +29,19 @@ func TestIDToName(t *testing.T) {
wg.Wait() wg.Wait()
} }
func TestOfflineTokenName(t *testing.T) {
h := func() hash.Hash { return fnv.New64() }
userID1 := "john"
userID2 := "jane"
id1 := offlineTokenName(userID1, "local", h)
id2 := offlineTokenName(userID2, "local", h)
if id1 == id2 {
t.Errorf("expected offlineTokenName to produce different hashes")
}
}
func TestNamespaceFromServiceAccountJWT(t *testing.T) { func TestNamespaceFromServiceAccountJWT(t *testing.T) {
namespace, err := namespaceFromServiceAccountJWT(serviceAccountToken) namespace, err := namespaceFromServiceAccountJWT(serviceAccountToken)
if err != nil { if err != nil {