修改:未开启权限验证情况下的消息推送bug

This commit is contained in:
2023-11-28 17:04:17 +08:00
parent b80dc78cce
commit e27f01cb34
6 changed files with 55 additions and 18 deletions

View File

@@ -8,6 +8,7 @@ import (
"strings"
"sync"
"time"
"zhub/internal/config"
)
type User struct {
@@ -63,6 +64,12 @@ type PermissionManager struct {
func (p *PermissionManager) Init() error {
p.lock.Lock()
defer p.lock.Unlock()
Conf := config.ReadConfig()
if !Conf.Service.Auth {
return nil
}
// Load YAML configuration from file
data, err := os.ReadFile("./auth.yml")
if err != nil {

View File

@@ -79,7 +79,7 @@ func messageHandler(v Message) {
// auth check
switch cmd {
case "publish", "broadcast", "delay", "rpc":
if !AuthManager.AuthCheck(c.user, rcmd[1], "w") {
if Conf.Service.Auth && !AuthManager.AuthCheck(c.user, rcmd[1], "w") {
c.send("-Error: Insufficient permissions to send " + cmd + " [" + rcmd[1] + "] message.")
log.Printf("[%d] -Auth: %s [%s]\n", c.sn, cmd, rcmd[1])
if cmd == "rpc" {
@@ -174,7 +174,7 @@ func messageHandler(v Message) {
// subscribe x y z
for _, topic := range rcmd[1:] {
// auth check
if !AuthManager.AuthCheck(c.user, rcmd[1], "r") {
if Conf.Service.Auth && !AuthManager.AuthCheck(c.user, rcmd[1], "r") {
c.send("-Error: Insufficient permissions to " + cmd + " [" + rcmd[1] + "] message.")
log.Printf("-Auth: %s [%s]\n", cmd, rcmd[1])
continue

View File

@@ -156,6 +156,12 @@ func (s *ZBus) timer(rcmd []string, c *ZConn) {
}
func (s *ZBus) ReloadTimer() {
// 未配置 ztimer 数据库返回
if Conf.Ztimer.Db.Addr == "" {
log.Println("No found ztimer config in app.ini")
return
}
db, err := sql.Open("mysql", fmt.Sprintf("%s:%s@tcp(%s)/%s?charset=utf8",
Conf.Ztimer.Db.User,
Conf.Ztimer.Db.Password,