diff --git a/api/keystore/service.go b/api/keystore/service.go index 5575083..16aca06 100644 --- a/api/keystore/service.go +++ b/api/keystore/service.go @@ -266,6 +266,10 @@ func (ks *Keystore) ImportUser(r *http.Request, args *ImportUserArgs, reply *Imp ks.log.Verbo("ImportUser called for %s", args.Username) + if args.Username == "" { + return errEmptyUsername + } + if usr, err := ks.getUser(args.Username); err == nil || usr != nil { return fmt.Errorf("user already exists: %s", args.Username) } diff --git a/api/keystore/service_test.go b/api/keystore/service_test.go index b4c805d..9ec5cfa 100644 --- a/api/keystore/service_test.go +++ b/api/keystore/service_test.go @@ -266,6 +266,17 @@ func TestServiceExportImport(t *testing.T) { } } + { + reply := ImportUserReply{} + if err := newKS.ImportUser(nil, &ImportUserArgs{ + Username: "", + Password: "strongPassword", + User: exportReply.User, + }, &reply); err == nil { + t.Fatal("Should have errored due to empty username") + } + } + { reply := ImportUserReply{} if err := newKS.ImportUser(nil, &ImportUserArgs{