X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.ext.equinox.jetty%2Fsrc%2Forg%2Fargeo%2Fequinox%2Fjetty%2FWebSocketJettyCustomizer.java;h=f582a43bc404810c6a64ba4e7e60edc03a6f52a7;hb=681290ba6cddc797e8a955d06d40c054b47e2ab2;hp=e59bbc0121e7833441864a2db840e1722d034452;hpb=4a8f313e757fa1f02ee0f4695b8a2f7d00401695;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.ext.equinox.jetty/src/org/argeo/equinox/jetty/WebSocketJettyCustomizer.java b/org.argeo.ext.equinox.jetty/src/org/argeo/equinox/jetty/WebSocketJettyCustomizer.java index e59bbc012..f582a43bc 100644 --- a/org.argeo.ext.equinox.jetty/src/org/argeo/equinox/jetty/WebSocketJettyCustomizer.java +++ b/org.argeo.ext.equinox.jetty/src/org/argeo/equinox/jetty/WebSocketJettyCustomizer.java @@ -1,17 +1,11 @@ package org.argeo.equinox.jetty; -import java.net.HttpCookie; import java.util.Dictionary; -import java.util.List; import javax.servlet.ServletException; -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; @@ -46,43 +40,56 @@ public class WebSocketJettyCustomizer extends JettyCustomizer { // @Override // public void onSessionOpened(WebSocketSession session) { // UpgradeRequest upgradeRequest = session.getUpgradeRequest(); +// UpgradeResponse upgradeResponse = session.getUpgradeResponse(); +// List acceptHeader = upgradeResponse.getHeaders("Sec-WebSocket-Accept"); +// if (acceptHeader.contains("no")) +// try { +// upgradeResponse.sendForbidden("FORBIDDEN"); +// return; +// } catch (IOException e) { +// // TODO Auto-generated catch block +// e.printStackTrace(); +// } // List cookies = upgradeRequest.getCookies(); +// // System.out.println("Upgrade request cookies : " + cookies); -// HttpSession httpSession = (HttpSession) upgradeRequest.getSession(); -// System.out.println("Upgrade request session ID : " + httpSession.getId()); +// String httpSessionId = null; +// if (cookies != null) { +// for (HttpCookie cookie : cookies) { +// if (cookie.getName().equals("JSESSIONID")) { +// httpSessionId = cookie.getValue(); +// } +// } +// } +// +// if (httpSessionId == null) { +// HttpSession httpSession = (HttpSession) upgradeRequest.getSession(); +// if (httpSession == null) { +//// session.disconnect(); +//// return; +// } else { +// httpSessionId = httpSession.getId(); +// System.out.println("Upgrade request session ID : " + httpSession.getId()); +// } +// } +// +// if (httpSessionId != null) { +// int dotIdx = httpSessionId.lastIndexOf('.'); +// if (dotIdx > 0) { +// httpSessionId = httpSessionId.substring(0, dotIdx); +// } +// } // } // // @Override // public void onSessionClosed(WebSocketSession session) { -// // TODO Auto-generated method stub -// // } // }); } catch (ServletException e) { throw new IllegalStateException("Cannot configure web sockets", e); } bc.registerService(javax.websocket.server.ServerContainer.class, serverContainer, null); -// ServiceTracker endpointsTracker = new ServiceTracker( -// bc, ServerEndpointConfig.Builder.class, null) { -// -// @Override -// public ServerEndpointConfig.Builder addingService( -// ServiceReference reference) { -// -// ServerEndpointConfig.Builder serverEndpointConfig = super.addingService(reference); -// try { -// serverContainer.addEndpoint(serverEndpointConfig.build()); -// } catch (DeploymentException e) { -// throw new IllegalArgumentException("Cannot add end point " + reference, e); -// } -// return serverEndpointConfig; -// } -// }; -// endpointsTracker.open(); - // TODO log it properly - // TODO close itproperly } } - }