|
@@ -64,11 +64,33 @@ func ApplyRoute(ctx context.Context, req *http.Request, proxyPath string, route
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
if req.Header.Get("Authorization") == "" && ds.Type == "stackdriver" {
|
|
if req.Header.Get("Authorization") == "" && ds.Type == "stackdriver" {
|
|
|
- tokenSrc, err := google.DefaultTokenSource(ctx, "https://www.googleapis.com/auth/monitoring.read")
|
|
|
|
|
|
|
+ defaultCredentials, err := google.FindDefaultCredentials(ctx)
|
|
|
|
|
+ projectName := ds.JsonData.Get("defaultProject").MustString()
|
|
|
|
|
+ if projectName == "" {
|
|
|
|
|
+ ds.JsonData.Set("defaultProject", defaultCredentials.ProjectID)
|
|
|
|
|
+ }
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ logger.Error("Failed to get default credentials", "error", err)
|
|
|
|
|
+ } else {
|
|
|
|
|
+ token, err := defaultCredentials.TokenSource.Token()
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ logger.Error("Failed to get default access token", "error", err)
|
|
|
|
|
+ } else {
|
|
|
|
|
+ req.Header.Add("Authorization", fmt.Sprintf("Bearer %s", token.AccessToken))
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if req.Header.Get("Authorization") == "" && ds.Type == "stackdriver" {
|
|
|
|
|
+ credentials, err := google.FindDefaultCredentials(ctx, "https://www.googleapis.com/auth/monitoring.read")
|
|
|
|
|
+ projectName := ds.JsonData.Get("defaultProject").MustString()
|
|
|
|
|
+ if projectName == "" {
|
|
|
|
|
+ ds.JsonData.Set("defaultProject", credentials.ProjectID)
|
|
|
|
|
+ }
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
logger.Error("Failed to get access token", "error", err)
|
|
logger.Error("Failed to get access token", "error", err)
|
|
|
} else {
|
|
} else {
|
|
|
- token, err := tokenSrc.Token()
|
|
|
|
|
|
|
+ token, err := credentials.TokenSource.Token()
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
logger.Error("Failed to get access token", "error", err)
|
|
logger.Error("Failed to get access token", "error", err)
|
|
|
} else {
|
|
} else {
|