@@ -3,7 +3,7 @@ package param
33import (
44 "../goNixArgParser"
55 "../serverErrHandler"
6- "errors "
6+ "fmt "
77 "io/ioutil"
88 "os"
99 "strings"
@@ -63,6 +63,21 @@ func init() {
6363 err = options .AddFlagValues ("users" , "--user" , "" , nil , "user info: <username>:<password>" )
6464 serverErrHandler .CheckFatal (err )
6565
66+ err = options .AddFlagValues ("usersbase64" , "--user-base64" , "" , nil , "user info: <username>:<base64-password>" )
67+ serverErrHandler .CheckFatal (err )
68+
69+ err = options .AddFlagValues ("usersmd5" , "--user-md5" , "" , nil , "user info: <username>:<md5-password>" )
70+ serverErrHandler .CheckFatal (err )
71+
72+ err = options .AddFlagValues ("userssha1" , "--user-sha1" , "" , nil , "user info: <username>:<sha1-password>" )
73+ serverErrHandler .CheckFatal (err )
74+
75+ err = options .AddFlagValues ("userssha256" , "--user-sha256" , "" , nil , "user info: <username>:<sha256-password>" )
76+ serverErrHandler .CheckFatal (err )
77+
78+ err = options .AddFlagValues ("userssha512" , "--user-sha512" , "" , nil , "user info: <username>:<sha512-password>" )
79+ serverErrHandler .CheckFatal (err )
80+
6681 err = options .AddFlagsValue ("key" , []string {"-k" , "--key" }, "GHFS_KEY" , "" , "TLS certificate key path" )
6782 serverErrHandler .CheckFatal (err )
6883
@@ -221,23 +236,29 @@ func doParseCli() []*Param {
221236 param .AuthDirs = normalizeFsPaths (arrAuthDirs )
222237
223238 // normalize users
224- param .Users = map [string ]string {}
225- arrUsers , _ := result .GetStrings ("users" )
226- for _ , userEntry := range arrUsers {
227- username := userEntry
228- password := ""
229-
230- colonIndex := strings .IndexByte (userEntry , ':' )
231- if colonIndex >= 0 {
232- username = userEntry [:colonIndex ]
233- password = userEntry [colonIndex + 1 :]
234- }
235-
236- if _ , ok := param .Users [username ]; ok {
237- serverErrHandler .CheckError (errors .New ("Duplicated username: " + username ))
238- } else {
239- param .Users [username ] = password
240- }
239+ arrUsersPlain , _ := result .GetStrings ("users" )
240+ param .UsersPlain = getUsers (arrUsersPlain )
241+ arrUsersBase64 , _ := result .GetStrings ("usersbase64" )
242+ param .UsersBase64 = getUsers (arrUsersBase64 )
243+ arrUsersMd5 , _ := result .GetStrings ("usersmd5" )
244+ param .UsersMd5 = getUsers (arrUsersMd5 )
245+ arrUsersSha1 , _ := result .GetStrings ("userssha1" )
246+ param .UsersSha1 = getUsers (arrUsersSha1 )
247+ arrUsersSha256 , _ := result .GetStrings ("userssha256" )
248+ param .UsersSha256 = getUsers (arrUsersSha256 )
249+ arrUsersSha512 , _ := result .GetStrings ("userssha512" )
250+ param .UsersSha512 = getUsers (arrUsersSha512 )
251+
252+ dupUsers := getDupUserNames (
253+ param .UsersPlain ,
254+ param .UsersBase64 ,
255+ param .UsersMd5 ,
256+ param .UsersSha1 ,
257+ param .UsersSha256 ,
258+ param .UsersSha512 ,
259+ )
260+ if len (dupUsers ) > 0 {
261+ serverErrHandler .CheckFatal (fmt .Errorf ("duplicated usernames: %q" , dupUsers ))
241262 }
242263
243264 // shows
0 commit comments