From d92fd8a2e2e13d092be1a91cbf9351861c9d7ef6 Mon Sep 17 00:00:00 2001 From: Denis Arh Date: Mon, 15 Jul 2019 11:33:52 +0200 Subject: [PATCH] Better frontend url discovery --- system/internal/service/settings.go | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/system/internal/service/settings.go b/system/internal/service/settings.go index 36954b366..ad3834598 100644 --- a/system/internal/service/settings.go +++ b/system/internal/service/settings.go @@ -2,6 +2,7 @@ package service import ( "context" + "fmt" "net/url" "os" "strings" @@ -215,18 +216,32 @@ func (svc settings) discover(current internalSettings.ValueSet) (internalSetting // of the function to the very last point frontendUrl = func(path string) stringWrapper { + const ( + feBase = "auth.frontend.url.base" + extRedir = "auth.external.redirect-url" + ) + return func() (base string) { - base = new.First("auth.frontend.url.base").String() + base = new.First(feBase).String() if len(base) == 0 { + // Not found, try to get it from the external redirect URL - base = new.First("auth.external.redirect-url").String() - if len(base) == 0 { + redirURL := new.First(extRedir).String() + if len(redirURL) == 0 { return } - p, err := url.Parse(base) + log.Info( + "discovering frontend url from '"+extRedir+"'", + zap.String(extRedir, redirURL)) + + // Removing placeholder + redirURL = fmt.Sprintf(redirURL, "") + + p, err := url.Parse(redirURL) if err != nil { + log.Error("could not parse '"+extRedir+"'", zap.Error(err)) return }