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;