@Override public Object createWebSocket(ServletUpgradeRequest req, ServletUpgradeResponse resp) { try { for (String subprotocol : req.getSubProtocols()) { if ("xmpp".equals(subprotocol)) { resp.setAcceptedSubProtocol(subprotocol); return new XmppWebSocket(); } } } catch (Exception e) { Log.warn(MessageFormat.format("Unable to load websocket factory: {0} ({1})", e.getClass().getName(), e.getMessage())); } Log.warn("Failed to create websocket for {}:{} make a request at {}", req.getRemoteAddress(), req.getRemotePort(), req.getRequestPath() ); return null; } });
@Override public Object createWebSocket(ServletUpgradeRequest req, ServletUpgradeResponse resp) { // Borrow WebSocket sub-protocols as input for channels and filters, // which are at position 0 and 1 in the sub-protocols array MetricWebSocket socket = new MetricWebSocket(req.getSubProtocols().get(0), req.getSubProtocols().get(1), wsConnectionManager); resp.setAcceptedSubProtocol(req.getSubProtocols().get(0)); return socket; }
@Override public boolean hasSubProtocol(String test) { for (String protocol : getSubProtocols()) { if (protocol.equalsIgnoreCase(test)) { return true; } } return false; }
@Override public Object createWebSocket(ServletUpgradeRequest req, ServletUpgradeResponse resp) { try { for (String subprotocol : req.getSubProtocols()) { if ("xmpp".equals(subprotocol)) { resp.setAcceptedSubProtocol(subprotocol); return new XmppWebSocket(); } } } catch (Exception e) { Log.warn(MessageFormat.format("Unable to load websocket factory: {0} ({1})", e.getClass().getName(), e.getMessage())); } Log.warn("Failed to create websocket for {}:{} make a request at {}", req.getRemoteAddress(), req.getRemotePort(), req.getRequestPath() ); return null; } });
public Object createWebSocket( final ServletUpgradeRequest req, final ServletUpgradeResponse res ) { final Set<String> allowSubProtocols = this.config.getSubProtocols(); if ( allowSubProtocols.isEmpty() ) { return doCreateWebSocket(); } for ( final String protocol : req.getSubProtocols() ) { if ( allowSubProtocols.contains( protocol ) ) { res.setAcceptedSubProtocol( protocol ); return doCreateWebSocket(); } } return null; }
@Override public Object createWebSocket(ServletUpgradeRequest req, ServletUpgradeResponse resp) { // Web browsers don't support sending custom headers on web socket creation. // So use the optional "Sec-WebSocket-Protocol" header, which is a list of sub-protocols. // For now, ensure there is exactly one sub-protocol which is the auth header. if (req.getSubProtocols().size() != 1) { return sendForbiddenAsResponse(resp); } final String authHeader = req.getSubProtocols().get(0); final String token; try { token = TokenUtils.getTokenFromAuthHeader(authHeader); } catch (NotAuthorizedException ignored) { return sendForbiddenAsResponse(resp); } final UserName userName; try { userName = new UserName(tokenManager.validateToken(token).username); } catch (final IllegalArgumentException ignored) { return sendForbiddenAsResponse(resp); } DremioSocket socket = new DremioSocket(userName); sockets.put(socket.getSocketId(), socket); resp.setAcceptedSubProtocol(authHeader); return socket; } }
if (!req.getSubProtocols().isEmpty()) { for (String subProtocol : req.getSubProtocols()) { if (subProtocol.startsWith("mqtt")) { requestedProtocol = Protocol.MQTT; ((MQTTSocket) socket).setTransportOptions(new HashMap<>(transportOptions)); ((MQTTSocket) socket).setPeerCertificates(req.getCertificates()); resp.setAcceptedSubProtocol(getAcceptedSubProtocol(mqttProtocols, req.getSubProtocols(), "mqtt")); break; case UNKNOWN: socket = new StompSocket(HttpTransportUtils.generateWsRemoteAddress(req.getHttpServletRequest())); ((StompSocket) socket).setPeerCertificates(req.getCertificates()); resp.setAcceptedSubProtocol(getAcceptedSubProtocol(stompProtocols, req.getSubProtocols(), "stomp")); break; default:
if (!req.getSubProtocols().isEmpty()) { for (String subProtocol : req.getSubProtocols()) { if (subProtocol.startsWith("mqtt")) { requestedProtocol = Protocol.MQTT; ((MQTTSocket) socket).setTransportOptions(new HashMap<>(transportOptions)); ((MQTTSocket) socket).setPeerCertificates(req.getCertificates()); resp.setAcceptedSubProtocol(getAcceptedSubProtocol(mqttProtocols, req.getSubProtocols(), "mqtt")); break; case UNKNOWN: socket = new StompSocket(HttpTransportUtils.generateWsRemoteAddress(req.getHttpServletRequest())); ((StompSocket) socket).setPeerCertificates(req.getCertificates()); resp.setAcceptedSubProtocol(getAcceptedSubProtocol(stompProtocols, req.getSubProtocols(), "stomp")); break; default:
if (!req.getSubProtocols().isEmpty()) { for (String subProtocol : req.getSubProtocols()) { if (subProtocol.startsWith("mqtt")) { requestedProtocol = Protocol.MQTT; ((MQTTSocket) socket).setTransportOptions(new HashMap<>(transportOptions)); ((MQTTSocket) socket).setPeerCertificates(req.getCertificates()); resp.setAcceptedSubProtocol(getAcceptedSubProtocol(mqttProtocols, req.getSubProtocols(), "mqtt")); break; case UNKNOWN: socket = new StompSocket(HttpTransportUtils.generateWsRemoteAddress(req.getHttpServletRequest())); ((StompSocket) socket).setPeerCertificates(req.getCertificates()); resp.setAcceptedSubProtocol(getAcceptedSubProtocol(stompProtocols, req.getSubProtocols(), "stomp")); break; default:
private WebSocketListener findWSTransport(ServletUpgradeRequest request, ServletUpgradeResponse response) { WSTransportProxy proxy = null; for (String subProtocol : request.getSubProtocols()) { try { String remoteAddress = HttpTransportUtils.generateWsRemoteAddress(request.getHttpServletRequest(), subProtocol); URI remoteURI = new URI(remoteAddress); TransportFactory factory = TransportFactory.findTransportFactory(remoteURI); if (factory instanceof BrokerServiceAware) { ((BrokerServiceAware) factory).setBrokerService(brokerService); } Transport transport = factory.doConnect(remoteURI); proxy = new WSTransportProxy(remoteAddress, transport); proxy.setPeerCertificates(request.getCertificates()); proxy.setTransportOptions(transportOptions); response.setAcceptedSubProtocol(proxy.getSubProtocol()); } catch (Exception e) { proxy = null; // Keep going and try any other sub-protocols present. continue; } } return proxy; }
private WebSocketListener findWSTransport(ServletUpgradeRequest request, ServletUpgradeResponse response) { WSTransportProxy proxy = null; for (String subProtocol : request.getSubProtocols()) { try { String remoteAddress = HttpTransportUtils.generateWsRemoteAddress(request.getHttpServletRequest(), subProtocol); URI remoteURI = new URI(remoteAddress); TransportFactory factory = TransportFactory.findTransportFactory(remoteURI); if (factory instanceof BrokerServiceAware) { ((BrokerServiceAware) factory).setBrokerService(brokerService); } Transport transport = factory.doConnect(remoteURI); proxy = new WSTransportProxy(remoteAddress, transport); proxy.setPeerCertificates(request.getCertificates()); proxy.setTransportOptions(transportOptions); response.setAcceptedSubProtocol(proxy.getSubProtocol()); } catch (Exception e) { proxy = null; // Keep going and try any other sub-protocols present. continue; } } return proxy; }
private WebSocketListener findWSTransport(ServletUpgradeRequest request, ServletUpgradeResponse response) { WSTransportProxy proxy = null; for (String subProtocol : request.getSubProtocols()) { try { String remoteAddress = HttpTransportUtils.generateWsRemoteAddress(request.getHttpServletRequest(), subProtocol); URI remoteURI = new URI(remoteAddress); TransportFactory factory = TransportFactory.findTransportFactory(remoteURI); if (factory instanceof BrokerServiceAware) { ((BrokerServiceAware) factory).setBrokerService(brokerService); } Transport transport = factory.doConnect(remoteURI); proxy = new WSTransportProxy(remoteAddress, transport); proxy.setPeerCertificates(request.getCertificates()); proxy.setTransportOptions(transportOptions); response.setAcceptedSubProtocol(proxy.getSubProtocol()); } catch (Exception e) { proxy = null; // Keep going and try any other sub-protocols present. continue; } } return proxy; }
List<String> requested = req.getSubProtocols(); String subprotocol = configurator.getNegotiatedSubprotocol(supported,requested); if (StringUtil.isNotBlank(subprotocol))
@Override public Object createWebSocket(ServletUpgradeRequest servletUpgradeRequest, ServletUpgradeResponse servletUpgradeResponse) { String protocol = null; for (String p : servletUpgradeRequest.getSubProtocols()) { if (p.startsWith("org.granite.gravity")) { protocol = p;