30 lines
1.2 KiB
Java
30 lines
1.2 KiB
Java
package io.dataease.websocket.handler;
|
|
|
|
import io.dataease.websocket.entity.DePrincipal;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.springframework.http.server.ServerHttpRequest;
|
|
import org.springframework.http.server.ServletServerHttpRequest;
|
|
import org.springframework.web.socket.WebSocketHandler;
|
|
import org.springframework.web.socket.server.support.DefaultHandshakeHandler;
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import java.security.Principal;
|
|
import java.util.Map;
|
|
|
|
public class PrincipalHandshakeHandler extends DefaultHandshakeHandler {
|
|
|
|
@Override
|
|
protected Principal determineUser(ServerHttpRequest request, WebSocketHandler wsHandler, Map<String, Object> attributes) {
|
|
if (request instanceof ServletServerHttpRequest) {
|
|
ServletServerHttpRequest servletServerHttpRequest = (ServletServerHttpRequest) request;
|
|
HttpServletRequest httpRequest = servletServerHttpRequest.getServletRequest();
|
|
final String userId = httpRequest.getParameter("userId");
|
|
if (StringUtils.isEmpty(userId)) {
|
|
return null;
|
|
}
|
|
return new DePrincipal(userId);
|
|
}
|
|
return null;
|
|
}
|
|
}
|