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