fix(singleuser): should not print pwd if it is specified
This commit is contained in:
parent
24adbcbe63
commit
30a04d9130
2 changed files with 21 additions and 24 deletions
|
@ -1,8 +1,6 @@
|
||||||
package singleuserhdr
|
package singleuserhdr
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"crypto/rand"
|
|
||||||
"crypto/sha1"
|
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"time"
|
"time"
|
||||||
|
@ -60,30 +58,11 @@ func (h *SimpleUserHandlers) IsInited() bool {
|
||||||
return ok
|
return ok
|
||||||
}
|
}
|
||||||
|
|
||||||
func generatePwd() (string, error) {
|
|
||||||
size := 10
|
|
||||||
buf := make([]byte, size)
|
|
||||||
size, err := rand.Read(buf)
|
|
||||||
if err != nil {
|
|
||||||
return "", err
|
|
||||||
}
|
|
||||||
|
|
||||||
return fmt.Sprintf("%x", sha1.Sum(buf[:size]))[:8], nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (h *SimpleUserHandlers) Init(userName, pwd string) (string, error) {
|
func (h *SimpleUserHandlers) Init(userName, pwd string) (string, error) {
|
||||||
if userName == "" {
|
if userName == "" {
|
||||||
return "", errors.New("user name can not be empty")
|
return "", errors.New("user name can not be empty")
|
||||||
}
|
}
|
||||||
|
|
||||||
var err error
|
|
||||||
if pwd == "" {
|
|
||||||
tmpPwd, err := generatePwd()
|
|
||||||
if err != nil {
|
|
||||||
return "", err
|
|
||||||
}
|
|
||||||
pwd = tmpPwd
|
|
||||||
}
|
|
||||||
pwdHash, err := bcrypt.GenerateFromPassword([]byte(pwd), 10)
|
pwdHash, err := bcrypt.GenerateFromPassword([]byte(pwd), 10)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
|
|
|
@ -3,6 +3,7 @@ package server
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"crypto/rand"
|
"crypto/rand"
|
||||||
|
"crypto/sha1"
|
||||||
"fmt"
|
"fmt"
|
||||||
"net/http"
|
"net/http"
|
||||||
"time"
|
"time"
|
||||||
|
@ -96,18 +97,24 @@ func initHandlers(router *gin.Engine, cfg gocfg.ICfg, deps *depidx.Deps) (*gin.E
|
||||||
if cfg.BoolOr("Users.EnableAuth", true) && !userHdrs.IsInited() {
|
if cfg.BoolOr("Users.EnableAuth", true) && !userHdrs.IsInited() {
|
||||||
adminName, ok := cfg.String("ENV.DEFAULTADMIN")
|
adminName, ok := cfg.String("ENV.DEFAULTADMIN")
|
||||||
if !ok || adminName == "" {
|
if !ok || adminName == "" {
|
||||||
// TODO: print sceen only
|
fmt.Print("Please input admin name: ")
|
||||||
fmt.Println("Please input admin name:")
|
|
||||||
fmt.Scanf("%s", &adminName)
|
fmt.Scanf("%s", &adminName)
|
||||||
}
|
}
|
||||||
|
|
||||||
adminPwd, _ := cfg.String("ENV.DEFAULTADMINPWD")
|
adminPwd, _ := cfg.String("ENV.DEFAULTADMINPWD")
|
||||||
|
if adminPwd == "" {
|
||||||
|
adminPwd, err = generatePwd()
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
fmt.Printf("password is generated: %s, please update it after login\n", adminPwd)
|
||||||
|
}
|
||||||
adminPwd, err := userHdrs.Init(adminName, adminPwd)
|
adminPwd, err := userHdrs.Init(adminName, adminPwd)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
fmt.Printf("%s is created, its password is %s, please update it after login\n", adminName, adminPwd)
|
fmt.Printf("user (%s) is created\n", adminName)
|
||||||
}
|
}
|
||||||
|
|
||||||
fileHdrs, err := fileshdr.NewFileHandlers(cfg, deps)
|
fileHdrs, err := fileshdr.NewFileHandlers(cfg, deps)
|
||||||
|
@ -173,3 +180,14 @@ func makeRandToken() string {
|
||||||
}
|
}
|
||||||
return string(b)
|
return string(b)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func generatePwd() (string, error) {
|
||||||
|
size := 10
|
||||||
|
buf := make([]byte, size)
|
||||||
|
size, err := rand.Read(buf)
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
|
||||||
|
return fmt.Sprintf("%x", sha1.Sum(buf[:size]))[:6], nil
|
||||||
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue