mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
stackdriver: wip - add logic for retrieving token from gce metadata server in the auth provider
This commit is contained in:
parent
77e4c4249d
commit
60617d0bf7
@ -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))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user