feat: 新增共库模式下登录失败日志表及相关功能
- 新增登录失败日志表(共库多租户版),添加 tenant_id 列实现租户隔离 - 调整登录失败日志逻辑,仅记录触发账号锁定的事件 - 新增管理端接口功能,为登录失败日志补充实时锁定状态 - 更新测试用例适配共库模式下的租户过滤逻辑
This commit is contained in:
+1
-5
@@ -1151,7 +1151,6 @@ func (s *Session) login(msg *ClientComMessage) {
|
||||
|
||||
handler := store.Store.GetLogicalAuthHandler(msg.Login.Scheme)
|
||||
if handler == nil {
|
||||
recordSessionLoginFailure(s, msg.Login.Scheme, msg.Login.Secret, nil, msg.Id, types.ErrUnsupported, msg.Timestamp)
|
||||
logs.Warn.Println("s.login: unknown authentication scheme", msg.Login.Scheme, s.sid)
|
||||
s.queueOut(ErrAuthUnknownScheme(msg.Id, "", msg.Timestamp))
|
||||
return
|
||||
@@ -1180,7 +1179,7 @@ func (s *Session) login(msg *ClientComMessage) {
|
||||
return
|
||||
}
|
||||
}
|
||||
recordSessionLoginFailure(s, msg.Login.Scheme, msg.Login.Secret, rec, msg.Id, err, msg.Timestamp)
|
||||
// 登录失败日志只记录触发锁定的事件(见上方 lockedNow 分支),普通失败不落库
|
||||
resp := decodeStoreError(err, msg.Id, msg.Timestamp, nil)
|
||||
if resp.Ctrl.Code >= 500 {
|
||||
// Log internal errors
|
||||
@@ -1191,7 +1190,6 @@ func (s *Session) login(msg *ClientComMessage) {
|
||||
}
|
||||
|
||||
if rec == nil || rec.TenantID != s.tenantID {
|
||||
recordSessionLoginFailure(s, msg.Login.Scheme, msg.Login.Secret, rec, msg.Id, types.ErrFailed, msg.Timestamp)
|
||||
logs.Warn.Println("s.login: authenticator returned invalid tenant", s.sid)
|
||||
s.queueOut(decodeStoreError(types.ErrFailed, msg.Id, msg.Timestamp, nil))
|
||||
return
|
||||
@@ -1217,7 +1215,6 @@ func (s *Session) login(msg *ClientComMessage) {
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
recordSessionLoginFailure(s, msg.Login.Scheme, msg.Login.Secret, rec, msg.Id, err, msg.Timestamp)
|
||||
logs.Warn.Println("s.login: user state check failed", rec.Uid, err, s.sid)
|
||||
s.queueOut(decodeStoreError(err, msg.Id, msg.Timestamp, nil))
|
||||
return
|
||||
@@ -1239,7 +1236,6 @@ func (s *Session) login(msg *ClientComMessage) {
|
||||
}
|
||||
}
|
||||
if err != nil {
|
||||
recordSessionLoginFailure(s, msg.Login.Scheme, msg.Login.Secret, rec, msg.Id, err, msg.Timestamp)
|
||||
logs.Warn.Println("s.login: failed to validate credentials:", err, s.sid)
|
||||
s.queueOut(decodeStoreError(err, msg.Id, msg.Timestamp, nil))
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user