1
0
Fork 0
mirror of https://github.com/eosswedenorg/thalos synced 2026-06-27 10:53:42 +02:00

cmd/tools/redis-acl.go: adding flag for password length.

This commit is contained in:
Henrik Hautakoski 2024-03-14 00:26:17 +01:00
parent 72b4f0a327
commit bf97f2e97a
2 changed files with 9 additions and 8 deletions

View file

@ -47,6 +47,7 @@ func init() {
RedisACLCmd.Flags().String("prefix", "ship", "Redis key prefix") RedisACLCmd.Flags().String("prefix", "ship", "Redis key prefix")
RedisACLCmd.Flags().Bool("cleartext", false, "If passwords should be hashed or left in cleartext.") RedisACLCmd.Flags().Bool("cleartext", false, "If passwords should be hashed or left in cleartext.")
RedisACLCmd.Flags().String("file", "", "Where the config should be written to (default: standard out)") RedisACLCmd.Flags().String("file", "", "Where the config should be written to (default: standard out)")
RedisACLCmd.Flags().Uint("pass-len", 32, "The length of generated passwords")
rootCmd.AddCommand( rootCmd.AddCommand(
validateCmd, validateCmd,

View file

@ -31,13 +31,12 @@ type User struct {
Hash bool Hash bool
} }
func NewUser(name, password string) User { func NewUser(name, password string, pass_len uint) User {
if len(password) < 1 { if len(password) < 1 {
return User{ return User{
Name: name, Name: name,
Password: randomString(32), Password: randomString(pass_len),
Generated: true, Generated: true,
Hash: false,
} }
} }
return User{Name: name, Password: password} return User{Name: name, Password: password}
@ -62,10 +61,10 @@ func (u User) PrintIfGeneratedPW() {
} }
} }
func randomString(length int) string { func randomString(length uint) string {
charset := "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUWXYZ0123456789" charset := "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUWXYZ0123456789"
out := "" out := ""
for i := 0; i < length; i++ { for i := 0; i < int(length); i++ {
idx := rnd.Intn(len(charset)) idx := rnd.Intn(len(charset))
out += string(charset[idx]) out += string(charset[idx])
} }
@ -115,10 +114,11 @@ var RedisACLCmd = &cobra.Command{
flagClient, _ := cmd.Flags().GetString("client") flagClient, _ := cmd.Flags().GetString("client")
flagClientPw, _ := cmd.Flags().GetString("client-pw") flagClientPw, _ := cmd.Flags().GetString("client-pw")
flagPrefix, _ := cmd.Flags().GetString("prefix") flagPrefix, _ := cmd.Flags().GetString("prefix")
flagPassLen, _ := cmd.Flags().GetUint("pass-len")
defaultUser := NewUser("default", flagDefUserPw) defaultUser := NewUser("default", flagDefUserPw, flagPassLen)
serverUser := NewUser(flagServer, flagServerPw) serverUser := NewUser(flagServer, flagServerPw, flagPassLen)
clientUser := NewUser(flagClient, flagClientPw) clientUser := NewUser(flagClient, flagClientPw, flagPassLen)
atleastOneGeneratedPw := defaultUser.Generated || serverUser.Generated || clientUser.Generated atleastOneGeneratedPw := defaultUser.Generated || serverUser.Generated || clientUser.Generated