package com.whyc.service; import com.whyc.dto.Response; import com.whyc.pojo.DocUser; import org.apache.shiro.SecurityUtils; import org.apache.shiro.subject.Subject; import org.springframework.stereotype.Service; import javax.servlet.http.HttpSession; @Service public class LoginService { public Response checkUserWebSocket(HttpSession httpSession){ Response model = new Response(); try { DocUser user = (DocUser) httpSession.getAttribute("user"); //System.out.println("webSocket:"+user); if(user!=null){ String sessionId = (String) httpSession.getServletContext().getAttribute(user.getName()); if(httpSession.getId().equals(sessionId)){ model.set(1,user,null); }else{ model.set(1,false,"不同主机登录"); //用户在其他主机登录,强迫用户在本机的session失效 httpSession.invalidate(); } } else { model.set(1,false,"用户信息失效,请重新登录"); } }catch (Exception e){ model.set(1,false,"登录信息失效,重新登录"); } return model; } public void logout() { Subject subject = SecurityUtils.getSubject(); subject.logout(); } }