diff pkg/imports/erdms.go @ 5610:a826d84485c8 erdms2

Use token server to fetch token for ERDMS requests.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Mon, 31 Oct 2022 19:05:28 +0100
parents e1936db6db8e
children 57c655b93ba8
line wrap: on
line diff
--- a/pkg/imports/erdms.go	Mon Oct 31 17:51:54 2022 +0100
+++ b/pkg/imports/erdms.go	Mon Oct 31 19:05:28 2022 +0100
@@ -20,6 +20,7 @@
 	"fmt"
 	"strings"
 
+	"gemma.intevation.de/gemma/pkg/config"
 	"gemma.intevation.de/gemma/pkg/log"
 	"gemma.intevation.de/gemma/pkg/soap"
 	erdms "gemma.intevation.de/gemma/pkg/soap/erdms2"
@@ -72,12 +73,15 @@
 		return nil, nil, err
 	}
 
-	var auth *soap.BasicAuth
-	if username != "" {
-		auth = &soap.BasicAuth{
-			Login:    username,
-			Password: password,
+	var auth soap.Auth
+
+	if tokenURL := config.TokenURL(); tokenURL != "" && username != "" {
+		token, err := soap.FetchToken(tokenURL, username, password)
+		if err != nil {
+			return nil, nil, fmt.Errorf(
+				"error requesting token for ERDMS service: %w", err)
 		}
+		auth = token
 	}
 
 	client := erdms.NewRefService(URL, insecure, auth)