Skip to content

Commit 1187ee1

Browse files
authored
Merge pull request #636 from signal18/user-management
User management
2 parents 609335d + 43f5dd3 commit 1187ee1

File tree

2 files changed

+19
-14
lines changed

2 files changed

+19
-14
lines changed

server/api.go

+17-12
Original file line numberDiff line numberDiff line change
@@ -305,7 +305,8 @@ func (repman *ReplicationManager) loginHandler(w http.ResponseWriter, r *http.Re
305305
fmt.Fprintf(w, "Error in request")
306306
return
307307
}
308-
if auth_try, ok := repman.UserAuthTry[user.Username]; ok {
308+
if v, ok := repman.UserAuthTry.Load(user.Username); ok {
309+
auth_try := v.(authTry)
309310
if auth_try.Try == 3 {
310311
if time.Now().Before(auth_try.Time.Add(3 * time.Minute)) {
311312
fmt.Println("Time until last auth try : " + time.Until(auth_try.Time).String())
@@ -315,28 +316,32 @@ func (repman *ReplicationManager) loginHandler(w http.ResponseWriter, r *http.Re
315316
} else {
316317
auth_try.Try = 1
317318
auth_try.Time = time.Now()
318-
repman.UserAuthTry[user.Username] = auth_try
319+
repman.UserAuthTry.Store(user.Username, auth_try)
319320
}
320321
} else {
321322

322323
auth_try.Try += 1
323-
repman.UserAuthTry[user.Username] = auth_try
324+
repman.UserAuthTry.Store(user.Username, auth_try)
324325
}
325326
} else {
326-
var auth_try authTry
327-
auth_try.User = user.Username
328-
auth_try.Try = 1
329-
auth_try.Time = time.Now()
330-
repman.UserAuthTry[user.Username] = auth_try
327+
var auth_try authTry = authTry{
328+
User: user.Username,
329+
Try: 1,
330+
Time: time.Now(),
331+
}
332+
repman.UserAuthTry.Store(user.Username, auth_try)
331333
}
332334

333335
for _, cluster := range repman.Clusters {
334336
//validate user credentials
335337
if cluster.IsValidACL(user.Username, user.Password, r.URL.Path, "password") {
336-
var auth_try authTry
337-
auth_try.Try = 1
338-
auth_try.Time = time.Now()
339-
repman.UserAuthTry[user.Username] = auth_try
338+
var auth_try authTry = authTry{
339+
User: user.Username,
340+
Try: 1,
341+
Time: time.Now(),
342+
}
343+
repman.UserAuthTry.Store(user.Username, auth_try)
344+
340345

341346
signer := jwt.New(jwt.SigningMethodRS256)
342347
claims := signer.Claims.(jwt.MapClaims)

server/server.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ type ReplicationManager struct {
9696
BackupBinlogList map[string]bool `json:"backupBinlogList"`
9797
BinlogParseList map[string]bool `json:"binlogParseList"`
9898
currentCluster *cluster.Cluster `json:"-"`
99-
UserAuthTry map[string]authTry `json:"-"`
99+
UserAuthTry sync.Map `json:"-"`
100100
OAuthAccessToken *oauth2.Token `json:"-"`
101101
ViperConfig *viper.Viper `json:"-"`
102102
tlog s18log.TermLog
@@ -913,7 +913,7 @@ func (repman *ReplicationManager) InitConfig(conf config.Config) {
913913
repman.DynamicFlagMaps = make(map[string]map[string]interface{})
914914
ImmuableMap := make(map[string]interface{})
915915
DynamicMap := make(map[string]interface{})
916-
repman.UserAuthTry = make(map[string]authTry)
916+
// repman.UserAuthTry = make(map[string]authTry)
917917
repman.cloud18CheckSum = nil
918918
// call after init if configuration file is provide
919919

0 commit comments

Comments
 (0)