Only send WS hello event once authenticated (#4509)
Этот коммит содержится в:
коммит произвёл
Harrison Healey
родитель
70e0d5c298
Коммит
39675afab4
@@ -8,6 +8,7 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/mattermost/platform/model"
|
"github.com/mattermost/platform/model"
|
||||||
|
"github.com/mattermost/platform/utils"
|
||||||
|
|
||||||
l4g "github.com/alecthomas/log4go"
|
l4g "github.com/alecthomas/log4go"
|
||||||
"github.com/gorilla/websocket"
|
"github.com/gorilla/websocket"
|
||||||
@@ -142,6 +143,13 @@ func (webCon *WebConn) isAuthenticated() bool {
|
|||||||
return webCon.SessionToken != ""
|
return webCon.SessionToken != ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (webCon *WebConn) SendHello() {
|
||||||
|
msg := model.NewWebSocketEvent(model.WEBSOCKET_EVENT_HELLO, "", "", webCon.UserId, nil)
|
||||||
|
msg.Add("server_version", fmt.Sprintf("%v.%v.%v", model.CurrentVersion, model.BuildNumber, utils.CfgHash))
|
||||||
|
msg.DoPreComputeJson()
|
||||||
|
webCon.Send <- msg
|
||||||
|
}
|
||||||
|
|
||||||
func (webCon *WebConn) ShouldSendEvent(msg *model.WebSocketEvent) bool {
|
func (webCon *WebConn) ShouldSendEvent(msg *model.WebSocketEvent) bool {
|
||||||
// IMPORTANT: Do not send event if WebConn does not have a session
|
// IMPORTANT: Do not send event if WebConn does not have a session
|
||||||
if !webCon.isAuthenticated() {
|
if !webCon.isAuthenticated() {
|
||||||
|
|||||||
@@ -119,9 +119,9 @@ func InvalidateCacheForUserSkipClusterSend(userId string) {
|
|||||||
func (h *Hub) Register(webConn *WebConn) {
|
func (h *Hub) Register(webConn *WebConn) {
|
||||||
h.register <- webConn
|
h.register <- webConn
|
||||||
|
|
||||||
msg := model.NewWebSocketEvent(model.WEBSOCKET_EVENT_HELLO, "", "", webConn.UserId, nil)
|
if webConn.isAuthenticated() {
|
||||||
msg.Add("server_version", fmt.Sprintf("%v.%v.%v", model.CurrentVersion, model.BuildNumber, utils.CfgHash))
|
webConn.SendHello()
|
||||||
go Publish(msg)
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (h *Hub) Unregister(webConn *WebConn) {
|
func (h *Hub) Unregister(webConn *WebConn) {
|
||||||
|
|||||||
@@ -57,6 +57,7 @@ func (wr *WebSocketRouter) ServeWebSocket(conn *WebConn, r *model.WebSocketReque
|
|||||||
resp := model.NewWebSocketResponse(model.STATUS_OK, r.Seq, nil)
|
resp := model.NewWebSocketResponse(model.STATUS_OK, r.Seq, nil)
|
||||||
resp.DoPreComputeJson()
|
resp.DoPreComputeJson()
|
||||||
conn.Send <- resp
|
conn.Send <- resp
|
||||||
|
conn.SendHello()
|
||||||
}
|
}
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user