pkg/internal/token/authenticationrecord.go (33 lines of code) (raw):

package token import ( "encoding/json" "os" "path/filepath" "github.com/Azure/azure-sdk-for-go/sdk/azidentity" ) type CachedRecordProvider interface { // Retrieve reads the authentication record from the file. Retrieve() (azidentity.AuthenticationRecord, error) // Store writes the authentication record to the file. Store(record azidentity.AuthenticationRecord) error } type defaultCachedRecordProvider struct { file string } func (c *defaultCachedRecordProvider) Retrieve() (azidentity.AuthenticationRecord, error) { record := azidentity.AuthenticationRecord{} b, err := os.ReadFile(c.file) if err == nil { err = json.Unmarshal(b, &record) } return record, err } func (c *defaultCachedRecordProvider) Store(record azidentity.AuthenticationRecord) error { b, err := json.Marshal(record) if err != nil { return err } dir := filepath.Dir(c.file) if err := os.MkdirAll(dir, 0700); err != nil { return err } return os.WriteFile(c.file, b, 0600) }