From 29c509f658f69099dc4344b60b6e811aefcd8840 Mon Sep 17 00:00:00 2001 From: laodaming <11058467+laudamine@user.noreply.gitee.com> Date: Tue, 5 Sep 2023 12:21:03 +0800 Subject: [PATCH] fix --- server/websocket/internal/logic/datatransferlogic.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/server/websocket/internal/logic/datatransferlogic.go b/server/websocket/internal/logic/datatransferlogic.go index 8e6bb1fa..a935d901 100644 --- a/server/websocket/internal/logic/datatransferlogic.go +++ b/server/websocket/internal/logic/datatransferlogic.go @@ -81,6 +81,11 @@ var ( renderChanLen = 500 //是否开启debug openDebug = false + //允许跨域的origin + mapAllowOrigin = map[string]struct{}{ + "https://www.fusen.3718.cn": struct{}{}, + //"http://www.fusen.3718.cn": struct{}{}, + } ) // 用户标识的连接增删操作队列传输的值的结构 @@ -111,6 +116,12 @@ type wsConnectItem struct { // 请求建立连接,升级websocket协议 func (l *DataTransferLogic) DataTransfer(w http.ResponseWriter, r *http.Request) { + //判断是不是允许的origin + if _, ok := mapAllowOrigin[r.Header.Get("Origin")]; !ok { + upgrader.CheckOrigin = func(r *http.Request) bool { + return false + } + } //把子协议携带的token设置到标准token头信息中 token := r.Header.Get("Sec-Websocket-Protocol") //有token是正常用户,无则是白板用户,也可以连接