private RequestContext createRequestContext(HttpServletRequest request, String endpointPath, HttpHeaders headers) { RequestContext context = RequestContext.Builder.create() .requestURI(URI.create(endpointPath)) .userPrincipal(request.getUserPrincipal()) .secure(request.isSecure()) .remoteAddr(request.getRemoteAddr()) .build(); headers.forEach((header, value) -> context.getHeaders().put(header, value)); return context; }
final List<String> values = requestContext.getHeaders().get(name); if (values == null) { requestContext.getHeaders().put(name, Utils.parseHeaderValue( headerValues.nextElement().trim())); } else { if (requestContext.getHttpSession() != null) { sessionToHandler.put((HttpSession) requestContext.getHttpSession(), handler);
private HandshakeRequest createHandshakeRequest(final UpgradeRequest webSocketRequest) { if (webSocketRequest instanceof RequestContext) { final RequestContext requestContext = (RequestContext) webSocketRequest; // TYRUS-208; spec requests headers to be read only when passed to ServerEndpointConfig // .Configurator#modifyHandshake. // TYRUS-211; spec requests parameterMap to be read only when passed to ServerEndpointConfig // .Configurator#modifyHandshake. requestContext.lock(); return requestContext; } return null; }
/** * Build {@link RequestContext} from given properties. * * @return created {@link RequestContext}. */ public RequestContext build() { return new RequestContext(requestURI, queryString, httpSession, secure, userPrincipal, isUserInRoleDelegate, remoteAddr, parameterMap != null ? parameterMap : new HashMap<String, List<String>>(), headers); }
upgradeRequest.getUserPrincipal(), upgradeRequest.getParameterMap(), clusterContext, connectionId, ((RequestContext) upgradeRequest).getRemoteAddr(), debugContext); webSocketToSession.put(socket, session);
private HandshakeRequest createHandshakeRequest(final UpgradeRequest webSocketRequest) { if (webSocketRequest instanceof RequestContext) { final RequestContext requestContext = (RequestContext) webSocketRequest; // TYRUS-208; spec requests headers to be read only when passed to ServerEndpointConfig // .Configurator#modifyHandshake. // TYRUS-211; spec requests parameterMap to be read only when passed to ServerEndpointConfig // .Configurator#modifyHandshake. requestContext.lock(); return requestContext; } return null; }
/** * Build {@link RequestContext} from given properties. * * @return created {@link RequestContext}. */ public RequestContext build() { return new RequestContext(requestURI, queryString, httpSession, secure, userPrincipal, isUserInRoleDelegate, remoteAddr, parameterMap != null ? parameterMap : new HashMap<String, List<String>>(), headers); }
upgradeRequest.getUserPrincipal(), upgradeRequest.getParameterMap(), clusterContext, connectionId, ((RequestContext) upgradeRequest).getRemoteAddr(), debugContext); webSocketToSession.put(socket, session);
/** * Client side only - compose the {@link UpgradeRequest} and store it for further use. * * @return composed {@link UpgradeRequest}. */ public UpgradeRequest prepareRequest() { Map<String, List<String>> requestHeaders = request.getHeaders(); updateHostAndOrigin(request); requestHeaders.put(UpgradeRequest.CONNECTION, Collections.singletonList(UpgradeRequest.UPGRADE)); requestHeaders.put(UpgradeRequest.UPGRADE, Collections.singletonList(UpgradeRequest.WEBSOCKET)); requestHeaders.put(HandshakeRequest.SEC_WEBSOCKET_KEY, Collections.singletonList(secKey.toString())); requestHeaders.put(HandshakeRequest.SEC_WEBSOCKET_VERSION, Collections.singletonList(VERSION)); if (!subProtocols.isEmpty()) { requestHeaders.put(HandshakeRequest.SEC_WEBSOCKET_PROTOCOL, Collections.singletonList(Utils.getHeaderFromList(subProtocols, null))); } if (!extensions.isEmpty()) { requestHeaders.put(HandshakeRequest.SEC_WEBSOCKET_EXTENSIONS, Collections.singletonList( Utils.getHeaderFromList(extensions, new Utils.Stringifier<Extension>() { @Override String toString(Extension extension) { return TyrusExtension.toString(extension); } })) ); } return request; }
/** * Client side only - compose the {@link UpgradeRequest} and store it for further use. * * @return composed {@link UpgradeRequest}. */ public UpgradeRequest prepareRequest() { Map<String, List<String>> requestHeaders = request.getHeaders(); updateHostAndOrigin(request); requestHeaders.put(UpgradeRequest.CONNECTION, Collections.singletonList(UpgradeRequest.UPGRADE)); requestHeaders.put(UpgradeRequest.UPGRADE, Collections.singletonList(UpgradeRequest.WEBSOCKET)); requestHeaders.put(HandshakeRequest.SEC_WEBSOCKET_KEY, Collections.singletonList(secKey.toString())); requestHeaders.put(HandshakeRequest.SEC_WEBSOCKET_VERSION, Collections.singletonList(VERSION)); if (!subProtocols.isEmpty()) { requestHeaders.put(HandshakeRequest.SEC_WEBSOCKET_PROTOCOL, Collections.singletonList(Utils.getHeaderFromList(subProtocols, null))); } if (!extensions.isEmpty()) { requestHeaders.put(HandshakeRequest.SEC_WEBSOCKET_EXTENSIONS, Collections.singletonList( Utils.getHeaderFromList(extensions, new Utils.Stringifier<Extension>() { @Override String toString(Extension extension) { return TyrusExtension.toString(extension); } })) ); } return request; }
private RequestContext createRequestContext(HttpServletRequest request, String endpointPath, HttpHeaders headers) { RequestContext context = RequestContext.Builder.create() .requestURI(URI.create(endpointPath)) .userPrincipal(request.getUserPrincipal()) .secure(request.isSecure()) .remoteAddr(request.getRemoteAddr()) .build(); headers.forEach((header, value) -> context.getHeaders().put(header, value)); return context; }
private RequestContext createRequestContext(HttpServletRequest request, String endpointPath, HttpHeaders headers) { RequestContext context = RequestContext.Builder.create() .requestURI(URI.create(endpointPath)) .userPrincipal(request.getUserPrincipal()) .secure(request.isSecure()) .remoteAddr(request.getRemoteAddr()) .build(); headers.forEach((header, value) -> context.getHeaders().put(header, value)); return context; }
private static WebSocketRequest createWebSocketRequest(final FilterChainContext ctx, final HttpContent requestContent) { final HttpRequestPacket requestPacket = (HttpRequestPacket) requestContent.getHttpHeader(); final RequestContext requestContext = RequestContext.Builder.create() .requestURI(URI.create(requestPacket.getRequestURI())) .queryString(requestPacket.getQueryString()) .connection(getWebSocketConnection(ctx, requestContent)) .secure(requestPacket.isSecure()) .build(); for (String name : requestPacket.getHeaders().names()) { final List<String> values = requestContext.getHeaders().get(name); if(values == null) { requestContext.getHeaders().put(name, Utils.parseHeaderValue(requestPacket.getHeader(name).trim())); } else { values.addAll(Utils.parseHeaderValue(requestPacket.getHeader(name).trim())); } } return requestContext; } }
private static UpgradeRequest createWebSocketRequest(final HttpContent requestContent) { final HttpRequestPacket requestPacket = (HttpRequestPacket) requestContent.getHttpHeader(); Parameters parameters = new Parameters(); parameters.setQuery(requestPacket.getQueryStringDC()); parameters.setQueryStringEncoding(Charsets.UTF8_CHARSET); Map<String, String[]> parameterMap = new HashMap<String, String[]>(); for (String paramName : parameters.getParameterNames()) { parameterMap.put(paramName, parameters.getParameterValues(paramName)); } final RequestContext requestContext = RequestContext.Builder.create() .requestURI( URI.create(requestPacket.getRequestURI())) .queryString(requestPacket.getQueryString()) .parameterMap(parameterMap) .secure(requestPacket.isSecure()) .remoteAddr(requestPacket.getRemoteAddress()) .build(); for (String name : requestPacket.getHeaders().names()) { for (String headerValue : requestPacket.getHeaders().values(name)) { final List<String> values = requestContext.getHeaders().get(name); if (values == null) { requestContext.getHeaders().put(name, Utils.parseHeaderValue(headerValue.trim())); } else { values.addAll(Utils.parseHeaderValue(headerValue.trim())); } } } return requestContext; }
requestContext.getHeaders().putAll(upgradeRequest.getHeaders());