Image Renderer: Add support for SSL in plugin mode (#98009)

This commit is contained in:
Nathan Marrs
2025-02-04 10:44:02 -08:00
committed by GitHub
parent ff926c5ac5
commit 6eac07c3a7
4 changed files with 23 additions and 4 deletions
+13 -4
View File
@@ -81,14 +81,14 @@ func ProvideService(cfg *setting.Cfg, features featuremgmt.FeatureToggles, remot
var domain string
switch {
case cfg.RendererUrl != "":
// RendererCallbackUrl has already been passed, it won't generate an error.
case cfg.RendererCallbackUrl != "":
u, err := url.Parse(cfg.RendererCallbackUrl)
if err != nil {
logger.Warn("Image renderer callback url is not valid. " +
"Please provide a valid RendererCallbackUrl. " +
"Read more at https://grafana.com/docs/grafana/latest/administration/image_rendering/")
return nil, err
}
sanitizeURL = getSanitizerURL(cfg.RendererUrl)
domain = u.Hostname()
case cfg.HTTPAddr != setting.DefaultHTTPAddr:
domain = cfg.HTTPAddr
@@ -96,6 +96,10 @@ func ProvideService(cfg *setting.Cfg, features featuremgmt.FeatureToggles, remot
domain = "localhost"
}
if cfg.RendererUrl != "" {
sanitizeURL = getSanitizerURL(cfg.RendererUrl)
}
var renderKeyProvider renderKeyProvider
if features.IsEnabledGlobally(featuremgmt.FlagRenderAuthJWT) {
renderKeyProvider = &jwtRenderKeyProvider{
@@ -429,6 +433,11 @@ func (rs *RenderingService) getGrafanaCallbackURL(path string) string {
return fmt.Sprintf("%s%s&render=1", rs.Cfg.RendererCallbackUrl, path)
}
if rs.Cfg.RendererCallbackUrl != "" {
// &render=1 signals to the legacy redirect layer to
return fmt.Sprintf("%s%s&render=1", rs.Cfg.RendererCallbackUrl, path)
}
protocol := rs.Cfg.Protocol
switch protocol {
case setting.HTTPScheme: