diff --git a/api/login.go b/api/login.go index 839b01210..b7e740207 100644 --- a/api/login.go +++ b/api/login.go @@ -431,6 +431,10 @@ func parseClaim(str string, claims map[string]interface{}) (string, bool) { for _, s := range strings.Split(str, "|") { s = strings.TrimSpace(s) + if s == "" { + continue + } + if strings.Contains(s, "{{") { tpl, err := template.New("").Parse(s) diff --git a/api/login_test.go b/api/login_test.go index ba501e473..95256dd47 100644 --- a/api/login_test.go +++ b/api/login_test.go @@ -53,3 +53,17 @@ func TestParseClaim3(t *testing.T) { t.Fail() } } + +func TestParseClaim4(t *testing.T) { + claims := map[string]interface{}{ + "username": "fiftin", + "email": "", + "id": 1234567, + } + + _, ok := parseClaim("|", claims) + + if ok { + t.Fail() + } +}