allow reading universal auth creds from env in agent

This commit is contained in:
Maidul Islam
2024-01-07 17:00:42 -05:00
parent 7bc29c5981
commit ee772e4a77
+18 -13
View File
@@ -273,18 +273,26 @@ func (tm *TokenManager) GetToken() string {
// Fetches a new access token using client credentials // Fetches a new access token using client credentials
func (tm *TokenManager) FetchNewAccessToken() error { func (tm *TokenManager) FetchNewAccessToken() error {
clientIDAsByte, err := ReadFile(tm.clientIdPath) clientID := os.Getenv("INFISICAL_UNIVERSAL_AUTH_CLIENT_ID")
if err != nil { if clientID == "" {
return fmt.Errorf("unable to read client id from file path '%s' due to error: %v", tm.clientIdPath, err) clientIDAsByte, err := ReadFile(tm.clientIdPath)
if err != nil {
return fmt.Errorf("unable to read client id from file path '%s' due to error: %v", tm.clientIdPath, err)
}
clientID = string(clientIDAsByte)
} }
clientSecretAsByte, err := ReadFile(tm.clientSecretPath) clientSecret := os.Getenv("INFISICAL_UNIVERSAL_CLIENT_SECRET")
if err != nil { if clientSecret == "" {
if len(tm.cachedClientSecret) == 0 { clientSecretAsByte, err := ReadFile(tm.clientSecretPath)
return fmt.Errorf("unable to read client secret from file and no cached client secret found: %v", err) if err != nil {
} else { if len(tm.cachedClientSecret) == 0 {
clientSecretAsByte = []byte(tm.cachedClientSecret) return fmt.Errorf("unable to read client secret from file and no cached client secret found: %v", err)
} else {
clientSecretAsByte = []byte(tm.cachedClientSecret)
}
} }
clientSecret = string(clientSecretAsByte)
} }
// remove client secret after first read // remove client secret after first read
@@ -292,13 +300,10 @@ func (tm *TokenManager) FetchNewAccessToken() error {
os.Remove(tm.clientSecretPath) os.Remove(tm.clientSecretPath)
} }
clientId := string(clientIDAsByte)
clientSecret := string(clientSecretAsByte)
// save as cache in memory // save as cache in memory
tm.cachedClientSecret = clientSecret tm.cachedClientSecret = clientSecret
err, loginResponse := universalAuthLogin(clientId, clientSecret) err, loginResponse := universalAuthLogin(clientID, clientSecret)
if err != nil { if err != nil {
return err return err
} }