@Override protected void handleSuccess(HttpServletRequest request, HttpServletResponse response, UpgradeInfo upgradeInfo, TyrusUpgradeResponse upgradeResponse) throws IOException, ServletException { TyrusHttpUpgradeHandler handler = request.upgrade(TyrusHttpUpgradeHandler.class); Writer servletWriter = newServletWriter(handler); handler.preInit(upgradeInfo, servletWriter, request.getUserPrincipal() != null); response.setStatus(upgradeResponse.getStatus()); upgradeResponse.getHeaders().forEach((key, value) -> response.addHeader(key, Utils.getHeaderFromList(value))); response.flushBuffer(); }
@Override protected void handleSuccess(HttpServletRequest request, HttpServletResponse response, UpgradeInfo upgradeInfo, TyrusUpgradeResponse upgradeResponse) throws IOException, ServletException { response.setStatus(upgradeResponse.getStatus()); upgradeResponse.getHeaders().forEach((key, value) -> response.addHeader(key, Utils.getHeaderFromList(value))); AsyncContext asyncContext = request.startAsync(); asyncContext.setTimeout(-1L); Object nativeRequest = getNativeRequest(request); BeanWrapper beanWrapper = new BeanWrapperImpl(nativeRequest); Object httpSocket = beanWrapper.getPropertyValue("connection.connectionHandler.rawConnection"); Object webSocket = webSocketHelper.newInstance(request, httpSocket); webSocketHelper.upgrade(webSocket, httpSocket, request.getServletContext()); response.flushBuffer(); boolean isProtected = request.getUserPrincipal() != null; Writer servletWriter = servletWriterHelper.newInstance(webSocket, isProtected); Connection connection = upgradeInfo.createConnection(servletWriter, noOpCloseListener); new BeanWrapperImpl(webSocket).setPropertyValue("connection", connection); new BeanWrapperImpl(servletWriter).setPropertyValue("connection", connection); webSocketHelper.registerForReadEvent(webSocket); }
if (success) { if (logger.isTraceEnabled()) { logger.trace("Successful request upgrade: " + upgradeResponse.getHeaders());
private void appendTraceHeaders(HttpServletResponse httpServletResponse, TyrusUpgradeResponse tyrusUpgradeResponse) { for (Map.Entry<String, List<String>> entry : tyrusUpgradeResponse.getHeaders().entrySet()) { if (entry.getKey().contains(UpgradeResponse.TRACING_HEADER_PREFIX)) { httpServletResponse.addHeader(entry.getKey(), Utils.getHeaderFromList(entry.getValue())); } } }
TyrusUpgradeResponse parseUpgradeResponse() throws ParseException { String response = bufferToString(); String[] tokens = response.split(LINE_SEPARATOR); TyrusUpgradeResponse tyrusUpgradeResponse = new TyrusUpgradeResponse(); parseFirstLine(tokens, tyrusUpgradeResponse); List<String> lines = new LinkedList<>(); lines.addAll(Arrays.asList(tokens).subList(1, tokens.length)); Map<String, String> headers = parseHeaders(lines); for (Map.Entry<String, String> entry : headers.entrySet()) { final List<String> values = tyrusUpgradeResponse.getHeaders().get(entry.getKey()); if (values == null) { tyrusUpgradeResponse.getHeaders().put(entry.getKey(), Utils.parseHeaderValue(entry.getValue())); } else { values.addAll(Utils.parseHeaderValue(entry.getValue())); } } return tyrusUpgradeResponse; }
@Override protected void handleSuccess(HttpServletRequest request, HttpServletResponse response, UpgradeInfo upgradeInfo, TyrusUpgradeResponse upgradeResponse) throws IOException, ServletException { TyrusHttpUpgradeHandler handler = request.upgrade(TyrusHttpUpgradeHandler.class); Writer servletWriter = newServletWriter(handler); handler.preInit(upgradeInfo, servletWriter, request.getUserPrincipal() != null); response.setStatus(upgradeResponse.getStatus()); upgradeResponse.getHeaders().forEach((key, value) -> response.addHeader(key, Utils.getHeaderFromList(value))); response.flushBuffer(); }
@Override protected void handleSuccess(HttpServletRequest request, HttpServletResponse response, UpgradeInfo upgradeInfo, TyrusUpgradeResponse upgradeResponse) throws IOException, ServletException { TyrusHttpUpgradeHandler handler = request.upgrade(TyrusHttpUpgradeHandler.class); Writer servletWriter = newServletWriter(handler); handler.preInit(upgradeInfo, servletWriter, request.getUserPrincipal() != null); response.setStatus(upgradeResponse.getStatus()); upgradeResponse.getHeaders().forEach((key, value) -> response.addHeader(key, Utils.getHeaderFromList(value))); response.flushBuffer(); }
private static UpgradeResponse getUpgradeResponse(HttpResponsePacket httpResponsePacket) { TyrusUpgradeResponse tyrusUpgradeResponse = new TyrusUpgradeResponse(); for (String name : httpResponsePacket.getHeaders().names()) { for (String headerValue : httpResponsePacket.getHeaders().values(name)) { final List<String> values = tyrusUpgradeResponse.getHeaders().get(name); if (values == null) { tyrusUpgradeResponse.getHeaders().put(name, Utils.parseHeaderValue(headerValue.trim())); } else { values.addAll(Utils.parseHeaderValue(headerValue.trim())); } } } tyrusUpgradeResponse.setStatus(httpResponsePacket.getStatus()); return tyrusUpgradeResponse; }
private static UpgradeResponse getUpgradeResponse(HttpResponsePacket httpResponsePacket) { TyrusUpgradeResponse tyrusUpgradeResponse = new TyrusUpgradeResponse(); for (String name : httpResponsePacket.getHeaders().names()) { for (String headerValue : httpResponsePacket.getHeaders().values(name)) { final List<String> values = tyrusUpgradeResponse.getHeaders().get(name); if (values == null) { tyrusUpgradeResponse.getHeaders().put(name, Utils.parseHeaderValue(headerValue.trim())); } else { values.addAll(Utils.parseHeaderValue(headerValue.trim())); } } } tyrusUpgradeResponse.setStatus(httpResponsePacket.getStatus()); return tyrusUpgradeResponse; }
@Override protected void handleSuccess(HttpServletRequest request, HttpServletResponse response, UpgradeInfo upgradeInfo, TyrusUpgradeResponse upgradeResponse) throws IOException, ServletException { response.setStatus(upgradeResponse.getStatus()); upgradeResponse.getHeaders().forEach((key, value) -> response.addHeader(key, Utils.getHeaderFromList(value))); AsyncContext asyncContext = request.startAsync(); asyncContext.setTimeout(-1L); Object nativeRequest = getNativeRequest(request); BeanWrapper beanWrapper = new BeanWrapperImpl(nativeRequest); Object httpSocket = beanWrapper.getPropertyValue("connection.connectionHandler.rawConnection"); Object webSocket = webSocketHelper.newInstance(request, httpSocket); webSocketHelper.upgrade(webSocket, httpSocket, request.getServletContext()); response.flushBuffer(); boolean isProtected = request.getUserPrincipal() != null; Writer servletWriter = servletWriterHelper.newInstance(webSocket, isProtected); Connection connection = upgradeInfo.createConnection(servletWriter, noOpCloseListener); new BeanWrapperImpl(webSocket).setPropertyValue("connection", connection); new BeanWrapperImpl(servletWriter).setPropertyValue("connection", connection); webSocketHelper.registerForReadEvent(webSocket); }
@Override protected void handleSuccess(HttpServletRequest request, HttpServletResponse response, UpgradeInfo upgradeInfo, TyrusUpgradeResponse upgradeResponse) throws IOException, ServletException { response.setStatus(upgradeResponse.getStatus()); upgradeResponse.getHeaders().forEach((key, value) -> response.addHeader(key, Utils.getHeaderFromList(value))); AsyncContext asyncContext = request.startAsync(); asyncContext.setTimeout(-1L); Object nativeRequest = getNativeRequest(request); BeanWrapper beanWrapper = new BeanWrapperImpl(nativeRequest); Object httpSocket = beanWrapper.getPropertyValue("connection.connectionHandler.rawConnection"); Object webSocket = webSocketHelper.newInstance(request, httpSocket); webSocketHelper.upgrade(webSocket, httpSocket, request.getServletContext()); response.flushBuffer(); boolean isProtected = request.getUserPrincipal() != null; Writer servletWriter = servletWriterHelper.newInstance(webSocket, isProtected); Connection connection = upgradeInfo.createConnection(servletWriter, noOpCloseListener); new BeanWrapperImpl(webSocket).setPropertyValue("connection", connection); new BeanWrapperImpl(servletWriter).setPropertyValue("connection", connection); webSocketHelper.registerForReadEvent(webSocket); }
for (Map.Entry<String, List<String>> entry : tyrusUpgradeResponse.getHeaders().entrySet()) { httpServletResponse.addHeader(entry.getKey(), Utils.getHeaderFromList(entry.getValue()));
if (success) { if (logger.isTraceEnabled()) { logger.trace("Successful request upgrade: " + upgradeResponse.getHeaders());
if (success) { if (logger.isTraceEnabled()) { logger.trace("Successful request upgrade: " + upgradeResponse.getHeaders());