diff --git a/zsub/msg-consumer.go b/zsub/msg-consumer.go index 7d9e3be..779b372 100644 --- a/zsub/msg-consumer.go +++ b/zsub/msg-consumer.go @@ -32,7 +32,7 @@ func msgAccept(v Message) { if LogDebug { log.Printf("[%d] rcmd: %s\n", v.Conn.sn, strings.Join(rcmd, " ")) } - if !c.auth && !strings.EqualFold("auth", rcmd[0]) && strings.EqualFold(GetStr("service.auth", "0"), "1") { + if strings.TrimSpace(c.auth) == "" && !strings.EqualFold("auth", rcmd[0]) && strings.EqualFold(GetStr("service.auth", "0"), "1") { c.send("-Auth: NOAUTH Authentication required:" + rcmd[0]) return } @@ -162,7 +162,7 @@ func msgAccept(v Message) { inx := strings.IndexAny(rcmd[1], "@") //user@pwd if strings.EqualFold(GetStr("auth."+rcmd[1][:inx], ""), rcmd[1][inx+1:]) { - c.auth = true + c.auth = rcmd[1][:inx] c.send("+Auth: ok!") } else { c.send("-Auth: invalid password!") diff --git a/zsub/zsub.go b/zsub/zsub.go index 0460a6a..2e7bf9e 100644 --- a/zsub/zsub.go +++ b/zsub/zsub.go @@ -87,7 +87,7 @@ type ZConn struct { //ZConn substoped map[string]chan int // 关闭信号量 ping int64 // 最后心跳时间 pong int64 // 最后心跳回复时间 - auth bool // 是否已验证授权 + auth string // 是否已验证授权 } type Lock struct {