Skip to content

Commit d97b8b2

Browse files
committed
Review fixes
1 parent f3db99a commit d97b8b2

File tree

2 files changed

+43
-5
lines changed

2 files changed

+43
-5
lines changed

secure_storage_manager.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -345,7 +345,7 @@ func (ssm *fileBasedSecureStorageManager) writeTemporaryCacheFile(cache map[stri
345345
return err
346346
}
347347
if err == nil {
348-
if stat.Mode().String() != "-rw-------" {
348+
if stat.Mode() != 0600 {
349349
if err = os.Chmod(ssm.credFilePath(), 0600); err != nil {
350350
return fmt.Errorf("cannot chmod file %v to 600. %v", ssm.credFilePath(), err)
351351
}

secure_storage_manager_test.go

+42-4
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ func TestBuildCredCacheDirPath(t *testing.T) {
4040
assertEqualE(t, path, testRoot1)
4141
stat, err := os.Stat(testRoot1)
4242
assertNilF(t, err)
43-
assertEqualE(t, stat.Mode().String(), "drwx------")
43+
assertEqualE(t, stat.Mode(), 0700|os.ModeDir)
4444
})
4545

4646
t.Run("should use first dir that exists and append segments", func(t *testing.T) {
@@ -52,21 +52,21 @@ func TestBuildCredCacheDirPath(t *testing.T) {
5252
assertEqualE(t, path, filepath.Join(testRoot2, "sub1", "sub2"))
5353
stat, err := os.Stat(testRoot2)
5454
assertNilF(t, err)
55-
assertEqualE(t, stat.Mode().String(), "drwx------")
55+
assertEqualE(t, stat.Mode(), 0700|os.ModeDir)
5656
})
5757
}
5858

5959
func TestSnowflakeFileBasedSecureStorageManager(t *testing.T) {
6060
skipOnWindows(t, "file system permission is different")
6161
credCacheDir, err := os.MkdirTemp("", "")
6262
assertNilF(t, err)
63-
assertNilF(t, os.MkdirAll(credCacheDir, 0777))
63+
assertNilF(t, os.MkdirAll(credCacheDir, os.ModePerm))
6464
credCacheDirEnvOverride := overrideEnv(credCacheDirEnv, credCacheDir)
6565
defer credCacheDirEnvOverride.rollback()
6666
ssm, err := newFileBasedSecureStorageManager()
6767
assertNilF(t, err)
6868

69-
t.Run("success", func(t *testing.T) {
69+
t.Run("store single token", func(t *testing.T) {
7070
tokenSpec := newMfaTokenSpec("host.com", "johndoe")
7171
cred := "token123"
7272
ssm.setCredential(tokenSpec, cred)
@@ -75,6 +75,44 @@ func TestSnowflakeFileBasedSecureStorageManager(t *testing.T) {
7575
assertEqualE(t, ssm.getCredential(tokenSpec), "")
7676
})
7777

78+
t.Run("store tokens of different types, hosts and users", func(t *testing.T) {
79+
mfaTokenSpec := newMfaTokenSpec("host.com", "johndoe")
80+
mfaCred := "token12"
81+
idTokenSpec := newIDTokenSpec("host.com", "johndoe")
82+
idCred := "token34"
83+
idTokenSpec2 := newIDTokenSpec("host.org", "johndoe")
84+
idCred2 := "token56"
85+
idTokenSpec3 := newIDTokenSpec("host.com", "someoneelse")
86+
idCred3 := "token78"
87+
ssm.setCredential(mfaTokenSpec, mfaCred)
88+
ssm.setCredential(idTokenSpec, idCred)
89+
ssm.setCredential(idTokenSpec2, idCred2)
90+
ssm.setCredential(idTokenSpec3, idCred3)
91+
assertEqualE(t, ssm.getCredential(mfaTokenSpec), mfaCred)
92+
assertEqualE(t, ssm.getCredential(idTokenSpec), idCred)
93+
assertEqualE(t, ssm.getCredential(idTokenSpec2), idCred2)
94+
assertEqualE(t, ssm.getCredential(idTokenSpec3), idCred3)
95+
ssm.deleteCredential(mfaTokenSpec)
96+
assertEqualE(t, ssm.getCredential(mfaTokenSpec), "")
97+
assertEqualE(t, ssm.getCredential(idTokenSpec), idCred)
98+
assertEqualE(t, ssm.getCredential(idTokenSpec2), idCred2)
99+
assertEqualE(t, ssm.getCredential(idTokenSpec3), idCred3)
100+
})
101+
102+
t.Run("override single token", func(t *testing.T) {
103+
mfaTokenSpec := newMfaTokenSpec("host.com", "johndoe")
104+
mfaCred := "token123"
105+
idTokenSpec := newIDTokenSpec("host.com", "johndoe")
106+
idCred := "token456"
107+
ssm.setCredential(mfaTokenSpec, mfaCred)
108+
ssm.setCredential(idTokenSpec, idCred)
109+
assertEqualE(t, ssm.getCredential(mfaTokenSpec), mfaCred)
110+
mfaCredOverride := "token789"
111+
ssm.setCredential(mfaTokenSpec, mfaCredOverride)
112+
assertEqualE(t, ssm.getCredential(mfaTokenSpec), mfaCredOverride)
113+
ssm.setCredential(idTokenSpec, idCred)
114+
})
115+
78116
t.Run("unlock stale cache", func(t *testing.T) {
79117
startTime := time.Now()
80118
assertNilF(t, os.Mkdir(ssm.lockPath(), 0o700))

0 commit comments

Comments
 (0)