Start working on web socket authentication
authorMathieu Baudier <mbaudier@argeo.org>
Sun, 28 Apr 2019 16:12:57 +0000 (18:12 +0200)
committerMathieu Baudier <mbaudier@argeo.org>
Sun, 28 Apr 2019 16:12:57 +0000 (18:12 +0200)
org.argeo.ext.equinox.jetty/src/org/argeo/equinox/jetty/WebSocketJettyCustomizer.java

index 6c868875f2c4407b8a66f4f7b54e0bcead47fa7f..e59bbc0121e7833441864a2db840e1722d034452 100644 (file)
@@ -1,12 +1,18 @@
 package org.argeo.equinox.jetty;
 
+import java.net.HttpCookie;
 import java.util.Dictionary;
+import java.util.List;
 
 import javax.servlet.ServletException;
-import javax.websocket.server.ServerContainer;
+import javax.servlet.http.HttpSession;
 
 import org.eclipse.equinox.http.jetty.JettyCustomizer;
 import org.eclipse.jetty.servlet.ServletContextHandler;
+import org.eclipse.jetty.websocket.api.UpgradeRequest;
+import org.eclipse.jetty.websocket.common.WebSocketSession;
+import org.eclipse.jetty.websocket.common.WebSocketSessionListener;
+import org.eclipse.jetty.websocket.jsr356.server.ServerContainer;
 import org.eclipse.jetty.websocket.jsr356.server.deploy.WebSocketServerContainerInitializer;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.FrameworkUtil;
@@ -35,10 +41,27 @@ public class WebSocketJettyCustomizer extends JettyCustomizer {
                        ServerContainer serverContainer;
                        try {
                                serverContainer = WebSocketServerContainerInitializer.configureContext(servletContextHandler);
+//                             serverContainer.addSessionListener(new WebSocketSessionListener() {
+//
+//                                     @Override
+//                                     public void onSessionOpened(WebSocketSession session) {
+//                                             UpgradeRequest upgradeRequest = session.getUpgradeRequest();
+//                                             List<HttpCookie> cookies = upgradeRequest.getCookies();
+//                                             System.out.println("Upgrade request cookies : " + cookies);
+//                                             HttpSession httpSession = (HttpSession) upgradeRequest.getSession();
+//                                             System.out.println("Upgrade request session ID : " + httpSession.getId());
+//                                     }
+//
+//                                     @Override
+//                                     public void onSessionClosed(WebSocketSession session) {
+//                                             // TODO Auto-generated method stub
+//
+//                                     }
+//                             });
                        } catch (ServletException e) {
                                throw new IllegalStateException("Cannot configure web sockets", e);
                        }
-                       bc.registerService(ServerContainer.class, serverContainer, null);
+                       bc.registerService(javax.websocket.server.ServerContainer.class, serverContainer, null);
 //                     ServiceTracker<ServerEndpointConfig.Builder, ServerEndpointConfig.Builder> endpointsTracker = new ServiceTracker<ServerEndpointConfig.Builder, ServerEndpointConfig.Builder>(
 //                                     bc, ServerEndpointConfig.Builder.class, null) {
 //