private long parseStartLine(UpgradeRequest request) { Optional<NameValuePair> startLine = URLEncodedUtils.parse(request.getRequestURI(), "UTF-8"). stream(). filter(pair -> "startLine".equals(pair.getName())).findFirst(); return startLine.isPresent() ? Long.valueOf(startLine.get().getValue()) : 0L; }
@Override public void initializeNativeSession(Session session) { super.initializeNativeSession(session); this.uri = session.getUpgradeRequest().getRequestURI(); HttpHeaders headers = new HttpHeaders(); headers.putAll(session.getUpgradeRequest().getHeaders()); this.headers = HttpHeaders.readOnlyHttpHeaders(headers); this.acceptedProtocol = session.getUpgradeResponse().getAcceptedSubProtocol(); List<ExtensionConfig> jettyExtensions = session.getUpgradeResponse().getExtensions(); if (!CollectionUtils.isEmpty(jettyExtensions)) { List<WebSocketExtension> extensions = new ArrayList<>(jettyExtensions.size()); for (ExtensionConfig jettyExtension : jettyExtensions) { extensions.add(new WebSocketExtension(jettyExtension.getName(), jettyExtension.getParameters())); } this.extensions = Collections.unmodifiableList(extensions); } else { this.extensions = Collections.emptyList(); } if (this.user == null) { this.user = session.getUpgradeRequest().getUserPrincipal(); } }
@Override public boolean isSecure() { if (upgradeRequest == null) { throw new IllegalStateException("No valid UpgradeRequest yet"); } URI requestURI = upgradeRequest.getRequestURI(); return "wss".equalsIgnoreCase(requestURI.getScheme()); }
@Override public boolean isSecure() { if (upgradeRequest == null) { throw new IllegalStateException("No valid UpgradeRequest yet"); } URI requestURI = upgradeRequest.getRequestURI(); return "wss".equalsIgnoreCase(requestURI.getScheme()); }
@Override public boolean isSecure() { if (upgradeRequest == null) { throw new IllegalStateException("No valid UpgradeRequest yet"); } URI requestURI = upgradeRequest.getRequestURI(); return "wss".equalsIgnoreCase(requestURI.getScheme()); }
public String getRequestURI() { return session.getUpgradeRequest().getRequestURI().getPath(); } public StringBuffer getRequestURL() {
public String getPathInfo() { return session.getUpgradeRequest().getRequestURI().getPath(); } public String getPathTranslated() {
public String getPathTranslated() { return session.getUpgradeRequest().getRequestURI().getPath(); } public String getScheme() {
public StringBuffer getRequestURL() { return new StringBuffer(session.getUpgradeRequest().getRequestURI().toString()); } public DispatcherType getDispatcherType() {
public StringBuffer getRequestURL() { return new StringBuffer(session.getUpgradeRequest().getRequestURI().toString()); } public DispatcherType getDispatcherType() {
public String getPathInfo() { return session.getUpgradeRequest().getRequestURI().getPath(); } public String getPathTranslated() {
public String getRequestURI() { return session.getUpgradeRequest().getRequestURI().getPath(); } public StringBuffer getRequestURL() {
public String getPathTranslated() { return session.getUpgradeRequest().getRequestURI().getPath(); } public String getScheme() {
public ValidateUpgradeRequest invoke() { UpgradeRequest request = session.getUpgradeRequest(); URI uri = request.getRequestURI(); path = uri.getPath(); Map<String, List<String>> params = request.getParameterMap(); List<String> watch = params.get("watch"); LOG.debug("path: {}", path); if (watch == null || watch.size() != 1) { session.close(0, " must specify watch parameter when connecting via websocket"); myResult = true; return this; } if (!watch.get(0).equalsIgnoreCase("true")) { session.close(0, " must specify watch parameter equal to 'true' when connecting via websocket"); myResult = true; return this; } myResult = false; return this; } }
/** * Create the WebSocketWrapper. * * @param req the request. * @param resp the response. * @return the WebSocketWrapper created. */ @Override @SuppressWarnings("unchecked") public WebSocketWrapper<?, ?> createWebSocket(UpgradeRequest req, UpgradeResponse resp) { WebSocketRoute route = findRoute(req.getRequestURI().toASCIIString()); if (route != null) { RouteParameters parameters = new RouteParameters( route.getRouteParams(req.getRequestURI().toASCIIString(), getQueryParameters(req))); return new WebSocketWrapper(route.getAdapter().createListenner(parameters)); } return null; }
@Override public void onWebSocketConnect(final Session sess) { super.onWebSocketConnect(sess); id = WsPool.add(this); run("[WS-OPEN] " + req.getRequestURL(), null, () -> { // add headers (for binding them to the XQuery parameters in the corresponding bind method) final UpgradeRequest ur = sess.getUpgradeRequest(); final BiConsumer<String, String> addHeader = (k, v) -> { if(v != null) headers.put(k, new Atm(v)); }; addHeader.accept("http-version", ur.getHttpVersion()); addHeader.accept("origin", ur.getOrigin()); addHeader.accept("protocol-version", ur.getProtocolVersion()); addHeader.accept("query-string", ur.getQueryString()); addHeader.accept("is-secure", String.valueOf(ur.isSecure())); addHeader.accept("request-uri", ur.getRequestURI().toString()); addHeader.accept("host", ur.getHost()); final TokenList protocols = new TokenList(); for(final String protocol : ur.getSubProtocols()) protocols.add(protocol); headers.put("sub-protocols", StrSeq.get(protocols)); findAndProcess(Annotation._WS_CONNECT, null); }); }
@Override public void initializeNativeSession(Session session) { super.initializeNativeSession(session); this.uri = session.getUpgradeRequest().getRequestURI(); HttpHeaders headers = new HttpHeaders(); headers.putAll(session.getUpgradeRequest().getHeaders()); this.headers = HttpHeaders.readOnlyHttpHeaders(headers); this.acceptedProtocol = session.getUpgradeResponse().getAcceptedSubProtocol(); List<ExtensionConfig> jettyExtensions = session.getUpgradeResponse().getExtensions(); if (!CollectionUtils.isEmpty(jettyExtensions)) { List<WebSocketExtension> extensions = new ArrayList<>(jettyExtensions.size()); for (ExtensionConfig jettyExtension : jettyExtensions) { extensions.add(new WebSocketExtension(jettyExtension.getName(), jettyExtension.getParameters())); } this.extensions = Collections.unmodifiableList(extensions); } else { this.extensions = Collections.emptyList(); } if (this.user == null) { this.user = session.getUpgradeRequest().getUserPrincipal(); } }
@Override public void initializeNativeSession(Session session) { super.initializeNativeSession(session); this.uri = session.getUpgradeRequest().getRequestURI(); HttpHeaders headers = new HttpHeaders(); headers.putAll(session.getUpgradeRequest().getHeaders()); this.headers = HttpHeaders.readOnlyHttpHeaders(headers); this.acceptedProtocol = session.getUpgradeResponse().getAcceptedSubProtocol(); List<ExtensionConfig> jettyExtensions = session.getUpgradeResponse().getExtensions(); if (!CollectionUtils.isEmpty(jettyExtensions)) { List<WebSocketExtension> extensions = new ArrayList<>(jettyExtensions.size()); for (ExtensionConfig jettyExtension : jettyExtensions) { extensions.add(new WebSocketExtension(jettyExtension.getName(), jettyExtension.getParameters())); } this.extensions = Collections.unmodifiableList(extensions); } else { this.extensions = Collections.emptyList(); } if (this.user == null) { this.user = session.getUpgradeRequest().getUserPrincipal(); } }
httpChannel.startRequest(method,request.getMethod(),BufferUtil.toBuffer(request.getRequestURI().toASCIIString()),version);
httpChannel.startRequest(method,request.getMethod(),BufferUtil.toBuffer(request.getRequestURI().toASCIIString()),version);