Browse code

forbid login of a null-string username

With this patch, the client blocks this type login, no sending
useless messages to daemon and registry. This saves lots of time.

Signed-off-by: Liu Hua <sdu.liu@huawei.com>

Liu Hua authored on 2016/01/28 23:17:28
Showing 1 changed files
... ...
@@ -81,8 +81,9 @@ func (cli *DockerCli) configureAuth(flUser, flPassword, flEmail, serverAddress s
81 81
 	if !ok {
82 82
 		authconfig = types.AuthConfig{}
83 83
 	}
84
+	authconfig.Username = strings.TrimSpace(authconfig.Username)
84 85
 
85
-	if flUser == "" {
86
+	if flUser = strings.TrimSpace(flUser); flUser == "" {
86 87
 		cli.promptWithDefault("Username", authconfig.Username)
87 88
 		flUser = readInput(cli.in, cli.out)
88 89
 		flUser = strings.TrimSpace(flUser)
... ...
@@ -91,6 +92,10 @@ func (cli *DockerCli) configureAuth(flUser, flPassword, flEmail, serverAddress s
91 91
 		}
92 92
 	}
93 93
 
94
+	if flUser == "" {
95
+		return authconfig, fmt.Errorf("Error: Non-null Username Required")
96
+	}
97
+
94 98
 	if flPassword == "" {
95 99
 		oldState, err := term.SaveState(cli.inFd)
96 100
 		if err != nil {
... ...
@@ -104,7 +109,7 @@ func (cli *DockerCli) configureAuth(flUser, flPassword, flEmail, serverAddress s
104 104
 
105 105
 		term.RestoreTerminal(cli.inFd, oldState)
106 106
 		if flPassword == "" {
107
-			return authconfig, fmt.Errorf("Error : Password Required")
107
+			return authconfig, fmt.Errorf("Error: Password Required")
108 108
 		}
109 109
 	}
110 110