Don't fallback to INTERNAL_TOKEN. Make load-function nicer

This commit is contained in:
Kim "BKC" Carlbäcker 2018-07-10 07:49:44 +02:00
parent 423d98a77f
commit 311bd6e716

View File

@ -1140,46 +1140,41 @@ func NewContext() {
func loadInternalToken(sec *ini.Section) string { func loadInternalToken(sec *ini.Section) string {
uri := sec.Key("INTERNAL_TOKEN_URI").String() uri := sec.Key("INTERNAL_TOKEN_URI").String()
if len(uri) > 0 { if len(uri) == 0 {
tempURI, err := url.Parse(uri) return loadOrGenerateInternalToken(sec)
if err != nil { }
log.Warn("Failed to parse INTERNAL_TOKEN_URI (%s). Falling back to INTERNAL_TOKEN: %v", uri, err) tempURI, err := url.Parse(uri)
return loadOrGenerateInternalToken(sec) if err != nil {
} log.Fatal(4, "Failed to parse INTERNAL_TOKEN_URI (%s). Falling back to INTERNAL_TOKEN: %v", uri, err)
if tempURI.Scheme == "file" { }
if !com.IsFile(tempURI.RequestURI()) { switch tempURI.Scheme {
log.Warn("INTERNAL_TOKEN_URI (%s) is not a file. Falling back to INTERNAL_TOKEN", uri) case "file":
return loadOrGenerateInternalToken(sec) fp, err := os.OpenFile(tempURI.RequestURI(), os.O_RDWR, 0600)
} if err != nil {
fp, err := os.OpenFile(tempURI.RequestURI(), os.O_RDWR, 0600) log.Fatal(4, "Failed to open InternalTokenURI (%s): %v", uri, err)
if err != nil { }
log.Error(4, "Failed to open InternalTokenURI (%s): %v", uri, err) defer fp.Close()
return loadOrGenerateInternalToken(sec)
} buf, err := ioutil.ReadAll(fp)
defer fp.Close() if err != nil {
log.Fatal(4, "Failed to read InternalTokenURI (%s): %v", uri, err)
buf, err := ioutil.ReadAll(fp) }
if err != nil { // No token in the file, generate one and store it.
log.Error(4, "Failed to read InternalTokenURI (%s): %v", uri, err) if len(buf) == 0 {
return loadOrGenerateInternalToken(sec) token, err := generate.NewInternalToken()
} if err != nil {
// No token in the file, generate one and store it. log.Fatal(4, "Error generate internal token: %v", err)
if len(buf) == 0 { }
token, err := generate.NewInternalToken() if _, err := io.WriteString(fp, token); err != nil {
if err != nil { log.Fatal(4, "Error writing to InternalTokenURI (%s): %v", uri, err)
log.Fatal(4, "Error generate internal token: %v", err) }
} return token
if _, err := io.WriteString(fp, token); err != nil { }
log.Error(4, "Error writing to InternalTokenURI (%s): %v", uri, err)
return loadOrGenerateInternalToken(sec) return string(buf)
} default:
return token log.Fatal(4, "Unsupported URI-Scheme %q (INTERNAL_TOKEN_URL = %q)", tempURI.Scheme, uri)
}
return string(buf)
}
} }
return loadOrGenerateInternalToken(sec)
} }
func loadOrGenerateInternalToken(sec *ini.Section) string { func loadOrGenerateInternalToken(sec *ini.Section) string {