Add WebSocket auth — JWT token validation on WS upgrade handshake

- websocket.nim: check Authorization Bearer token before WebSocket upgrade
- httpserver.nim: pass config + jwtSecret to WsServer
This commit is contained in:
2026-05-07 00:38:38 +03:00
parent 18af892232
commit 29425c45f8
2 changed files with 28 additions and 4 deletions
+2 -2
View File
@@ -42,11 +42,11 @@ proc newHttpServer*(config: BaraConfig): HttpServer =
let db = newLSMTree(dataDir)
let ctx = newExecutionContext(db)
ctx.txnManager = newTxnManager()
let ws = newWsServer()
let secret = if config.jwtSecret.len > 0: config.jwtSecret else: "baradb-default-secret-change-in-production!"
let ws = newWsServer(config, secret)
ctx.onChange = proc(ev: ChangeEvent) =
let msg = $ev.kind & " " & ev.table
asyncCheck ws.broadcastToTable(ev.table, msg)
let secret = if config.jwtSecret.len > 0: config.jwtSecret else: "baradb-default-secret-change-in-production!"
HttpServer(config: config, running: false, db: db, ctx: ctx,
secretKey: secret,
metrics: Metrics(), ws: ws)