From d6b62f282b56b045e232dbae96632c68d0a4fd0a Mon Sep 17 00:00:00 2001 From: chanbook <648715275@qq.com> Date: Mon, 8 Aug 2022 16:34:13 +0800 Subject: [PATCH] =?UTF-8?q?=E8=81=8A=E5=A4=A9=E5=AE=A4=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E5=8F=91=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../chat/demo/config/WhiteListHandler.java | 2 +- .../com/zhangshu/chat/demo/websocket/ChatRoom.java | 14 ++++++++++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/zhangshu/chat/demo/config/WhiteListHandler.java b/src/main/java/com/zhangshu/chat/demo/config/WhiteListHandler.java index f52f9a2..a3fde73 100644 --- a/src/main/java/com/zhangshu/chat/demo/config/WhiteListHandler.java +++ b/src/main/java/com/zhangshu/chat/demo/config/WhiteListHandler.java @@ -21,7 +21,7 @@ public class WhiteListHandler { "/link", "/auth/login", "/event/**", - "/chat/room/**" +// "/chat/room/**" }; public void handle(HttpSecurity http) throws Exception { diff --git a/src/main/java/com/zhangshu/chat/demo/websocket/ChatRoom.java b/src/main/java/com/zhangshu/chat/demo/websocket/ChatRoom.java index 59b879f..3285974 100644 --- a/src/main/java/com/zhangshu/chat/demo/websocket/ChatRoom.java +++ b/src/main/java/com/zhangshu/chat/demo/websocket/ChatRoom.java @@ -10,12 +10,14 @@ import com.zhangshu.chat.demo.service.RoomCache; import com.zhangshu.chat.demo.vo.UserMessageVo; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; +import org.springframework.security.core.Authentication; import org.springframework.stereotype.Component; import javax.websocket.*; import javax.websocket.server.PathParam; import javax.websocket.server.ServerEndpoint; import java.io.IOException; +import java.security.Principal; import java.util.*; @Slf4j @@ -37,11 +39,15 @@ public class ChatRoom { */ @OnOpen public void onOpen(Session session, @PathParam("roomId") String roomId) { - if (getRoomCache().createSuccess(roomId)) { - this.sendMessage("无此房间,拒绝连接", session); - return; +// if (getRoomCache().createSuccess(roomId)) { +// this.sendMessage("无此房间,拒绝连接", session); +// return; +// } + Principal userPrincipal = session.getUserPrincipal(); + if (Objects.isNull(userPrincipal)) { + this.sendMessage("用户验证失败,拒绝连接", session); } - UserDetailsImpl userInfo = (UserDetailsImpl) session.getUserPrincipal(); + UserDetailsImpl userInfo = (UserDetailsImpl)((Authentication) userPrincipal).getPrincipal(); if (Objects.isNull(userInfo) || !getRoomCache().isExistUser(userInfo.getId())) { this.sendMessage("用户验证失败或者房间内无此用户,拒绝连接", session); return;