*: strip leading and trailing whitespace when reading config values from files

also add a debug endpoint that dumps the go parsed config

Signed-off-by: Jens Langhammer <jens@goauthentik.io>
This commit is contained in:
Jens Langhammer 2023-01-09 15:29:22 +01:00
parent db60427e21
commit a1be924fa4
No known key found for this signature in database
3 changed files with 9 additions and 2 deletions

View file

@ -93,7 +93,7 @@ class ConfigLoader:
if url.scheme == "file":
try:
with open(url.path, "r", encoding="utf8") as _file:
value = _file.read()
value = _file.read().strip()
except OSError as exc:
self.log("error", f"Failed to read config value from {url.path}: {exc}")
value = url.query

View file

@ -135,7 +135,7 @@ func (c *Config) parseScheme(rawVal string) string {
if err != nil {
return u.RawQuery
}
return string(d)
return strings.TrimSpace(string(d))
}
return rawVal
}

View file

@ -1,6 +1,7 @@
package debug
import (
"encoding/json"
"fmt"
"net/http"
"net/http/pprof"
@ -23,6 +24,12 @@ func EnableDebugServer() {
h.HandleFunc("/debug/pprof/profile", pprof.Profile)
h.HandleFunc("/debug/pprof/symbol", pprof.Symbol)
h.HandleFunc("/debug/pprof/trace", pprof.Trace)
h.HandleFunc("/debug/dump_config", func(w http.ResponseWriter, r *http.Request) {
enc := json.NewEncoder(w)
enc.SetEscapeHTML(true)
enc.SetIndent("", "\t")
enc.Encode(config.Get())
})
h.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
_ = h.Walk(func(route *mux.Route, router *mux.Router, ancestors []*mux.Route) error {
tpl, err := route.GetPathTemplate()