新增:完善发送频道消息拦截
This commit is contained in:
@@ -75,6 +75,18 @@ func handleMessage(v Message) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
cmd := rcmd[0]
|
cmd := rcmd[0]
|
||||||
|
|
||||||
|
// auth check
|
||||||
|
switch cmd {
|
||||||
|
case "publish", "broadcast", "delay", "rpc":
|
||||||
|
if !AuthManager.AuthCheck(c.user, rcmd[1], "w") {
|
||||||
|
c.send("-Error: Insufficient permissions to send " + cmd + " [" + rcmd[1] + "] message.")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
case "subscribe": // 在订阅逻辑处检查
|
||||||
|
default: // 其他指令将放行,包括:unsubscribe、lock、unlock、timer
|
||||||
|
}
|
||||||
|
|
||||||
switch cmd {
|
switch cmd {
|
||||||
case "auth":
|
case "auth":
|
||||||
userid, err := AuthManager.GetUserIdByToken(rcmd[1])
|
userid, err := AuthManager.GetUserIdByToken(rcmd[1])
|
||||||
@@ -132,12 +144,6 @@ func handleMessage(v Message) {
|
|||||||
/*if len(topicChan) < cap(topicChan) {
|
/*if len(topicChan) < cap(topicChan) {
|
||||||
topicChan <- rcmd
|
topicChan <- rcmd
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
// auth check
|
|
||||||
if !AuthManager.AuthCheck(c.user, rcmd[1], "w") {
|
|
||||||
c.send("-Error: Insufficient permissions to send topic [" + rcmd[1] + "] message.")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
Hub.Publish(rcmd[1], rcmd[2])
|
Hub.Publish(rcmd[1], rcmd[2])
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
@@ -161,7 +167,7 @@ func handleMessage(v Message) {
|
|||||||
for _, topic := range rcmd[1:] {
|
for _, topic := range rcmd[1:] {
|
||||||
// auth check
|
// auth check
|
||||||
if !AuthManager.AuthCheck(c.user, rcmd[1], "r") {
|
if !AuthManager.AuthCheck(c.user, rcmd[1], "r") {
|
||||||
c.send("-Error: Insufficient permissions to accept topic [" + topic + "] message.")
|
c.send("-Error: Insufficient permissions to " + cmd + " [" + rcmd[1] + "] message.")
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
c.subscribe(topic)
|
c.subscribe(topic)
|
||||||
|
|||||||
Reference in New Issue
Block a user