package org.hsweb.web.socket.utils; import org.hsweb.web.bean.po.user.User; import org.hsweb.web.core.session.HttpSessionManager; import org.springframework.http.HttpHeaders; import org.springframework.web.socket.WebSocketSession; import java.util.HashMap; import java.util.List; import java.util.Map; /** * Created by zhouhao on 16-5-30. */ public class SessionUtils { public static User getUser(WebSocketSession session, HttpSessionManager sessionManager) { User user = ((User) session.getAttributes().get("user")); if (user != null) return user; HttpHeaders headers = session.getHandshakeHeaders(); List<String> cookies = headers.get("Cookie"); if (cookies == null || cookies.isEmpty()) { return null; } String[] cookie = cookies.get(0).split("[;]"); Map<String, Object> sessionId = new HashMap<>(); for (int i = 0; i < cookie.length; i++) { String[] tmp = cookie[i].split("[=]"); if (tmp.length == 2) sessionId.put(tmp[0].trim(), tmp[1].trim()); } user = sessionManager.getUserBySessionId((String) sessionId.get("SESSION")); if (user == null) { user = sessionManager.getUserBySessionId((String) sessionId.get("JSESSIONID")); } return user; } }