Skip to content

Commit

Permalink
Merge pull request #636 from signal18/user-management
Browse files Browse the repository at this point in the history
User management
  • Loading branch information
svaroqui authored Jun 11, 2024
2 parents 609335d + 43f5dd3 commit 1187ee1
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 14 deletions.
29 changes: 17 additions & 12 deletions server/api.go
Original file line number Diff line number Diff line change
Expand Up @@ -305,7 +305,8 @@ func (repman *ReplicationManager) loginHandler(w http.ResponseWriter, r *http.Re
fmt.Fprintf(w, "Error in request")
return
}
if auth_try, ok := repman.UserAuthTry[user.Username]; ok {
if v, ok := repman.UserAuthTry.Load(user.Username); ok {
auth_try := v.(authTry)
if auth_try.Try == 3 {
if time.Now().Before(auth_try.Time.Add(3 * time.Minute)) {
fmt.Println("Time until last auth try : " + time.Until(auth_try.Time).String())
Expand All @@ -315,28 +316,32 @@ func (repman *ReplicationManager) loginHandler(w http.ResponseWriter, r *http.Re
} else {
auth_try.Try = 1
auth_try.Time = time.Now()
repman.UserAuthTry[user.Username] = auth_try
repman.UserAuthTry.Store(user.Username, auth_try)
}
} else {

auth_try.Try += 1
repman.UserAuthTry[user.Username] = auth_try
repman.UserAuthTry.Store(user.Username, auth_try)
}
} else {
var auth_try authTry
auth_try.User = user.Username
auth_try.Try = 1
auth_try.Time = time.Now()
repman.UserAuthTry[user.Username] = auth_try
var auth_try authTry = authTry{
User: user.Username,
Try: 1,
Time: time.Now(),
}
repman.UserAuthTry.Store(user.Username, auth_try)
}

for _, cluster := range repman.Clusters {
//validate user credentials
if cluster.IsValidACL(user.Username, user.Password, r.URL.Path, "password") {
var auth_try authTry
auth_try.Try = 1
auth_try.Time = time.Now()
repman.UserAuthTry[user.Username] = auth_try
var auth_try authTry = authTry{
User: user.Username,
Try: 1,
Time: time.Now(),
}
repman.UserAuthTry.Store(user.Username, auth_try)


signer := jwt.New(jwt.SigningMethodRS256)
claims := signer.Claims.(jwt.MapClaims)
Expand Down
4 changes: 2 additions & 2 deletions server/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ type ReplicationManager struct {
BackupBinlogList map[string]bool `json:"backupBinlogList"`
BinlogParseList map[string]bool `json:"binlogParseList"`
currentCluster *cluster.Cluster `json:"-"`
UserAuthTry map[string]authTry `json:"-"`
UserAuthTry sync.Map `json:"-"`
OAuthAccessToken *oauth2.Token `json:"-"`
ViperConfig *viper.Viper `json:"-"`
tlog s18log.TermLog
Expand Down Expand Up @@ -913,7 +913,7 @@ func (repman *ReplicationManager) InitConfig(conf config.Config) {
repman.DynamicFlagMaps = make(map[string]map[string]interface{})
ImmuableMap := make(map[string]interface{})
DynamicMap := make(map[string]interface{})
repman.UserAuthTry = make(map[string]authTry)
// repman.UserAuthTry = make(map[string]authTry)
repman.cloud18CheckSum = nil
// call after init if configuration file is provide

Expand Down

0 comments on commit 1187ee1

Please sign in to comment.