stackdriver: wip - add logic for retrieving token from gce metadata server in the auth provider

This commit is contained in:
Erik Sundell 2018-10-08 13:49:27 +02:00
parent 77e4c4249d
commit 60617d0bf7
2 changed files with 14 additions and 13 deletions

View File

@ -55,24 +55,24 @@ func ApplyRoute(ctx context.Context, req *http.Request, proxyPath string, route
} }
} }
// if route.JwtTokenAuth != nil && len(ds.SecureJsonData["privateKey"]) != 0 { gceAutoAuthentication := ds.JsonData.Get("gceAutomaticAuthentication").MustBool()
// if token, err := tokenProvider.getJwtAccessToken(ctx, data); err != nil { if route.JwtTokenAuth != nil && !gceAutoAuthentication {
// logger.Error("Failed to get access token", "error", err) if token, err := tokenProvider.getJwtAccessToken(ctx, data); err != nil {
// } else { logger.Error("Failed to get access token", "error", err)
// req.Header.Add("Authorization", fmt.Sprintf("Bearer %s", token)) } else {
// } req.Header.Add("Authorization", fmt.Sprintf("Bearer %s", token))
// } }
}
if ds.Type == "stackdriver" { if gceAutoAuthentication {
defaultCredentials, err := google.FindDefaultCredentials(ctx, route.JwtTokenAuth.Scopes...) tokenSrc, err := google.DefaultTokenSource(ctx, route.JwtTokenAuth.Scopes...)
if err != nil { if err != nil {
logger.Error("Failed to get default credentials", "error", err) logger.Error("Failed to get default credentials", "error", err)
} else { } else {
token, err := defaultCredentials.TokenSource.Token() token, err := tokenSrc.Token()
if err != nil { if err != nil {
logger.Error("Failed to get default access token", "error", err) logger.Error("Failed to get default access token", "error", err)
} else { } else {
ds.JsonData.Set("defaultProject", defaultCredentials.ProjectID)
req.Header.Add("Authorization", fmt.Sprintf("Bearer %s", token.AccessToken)) req.Header.Add("Authorization", fmt.Sprintf("Bearer %s", token.AccessToken))
} }
} }

View File

@ -521,8 +521,9 @@ func replaceWithMetricPart(metaPartName string, metricType string) []byte {
func getProjectName(ctx context.Context, dsInfo *models.DataSource, route *plugins.AppPluginRoute) (string, error) { func getProjectName(ctx context.Context, dsInfo *models.DataSource, route *plugins.AppPluginRoute) (string, error) {
var projectName string var projectName string
gceAutoAuthentication := dsInfo.JsonData.Get("gceAutoAuthentication").MustBool() gceAutomaticAuthentication := dsInfo.JsonData.Get("gceAutomaticAuthentication").MustBool()
if gceAutoAuthentication { logger.Info("gceAutomaticAuthentication", "gceAutomaticAuthentication", gceAutomaticAuthentication)
if gceAutomaticAuthentication {
defaultCredentials, err := google.FindDefaultCredentials(ctx, route.JwtTokenAuth.Scopes...) defaultCredentials, err := google.FindDefaultCredentials(ctx, route.JwtTokenAuth.Scopes...)
if err != nil { if err != nil {
return "", err return "", err