public HttpServerExchange getExchange() { return originalRequest.getExchange(); }
@Override public void setAttribute(final String name, final Object object) { httpServletRequest.setAttribute(name, object); }
public String changeSessionId() { return httpServletRequest.changeSessionId(); }
public String getOriginalPathInfo() { String uri = (String) getAttribute(RequestDispatcher.FORWARD_PATH_INFO); if(uri != null) { return uri; } uri = (String) getAttribute(AsyncContext.ASYNC_PATH_INFO); if(uri != null) { return uri; } return getPathInfo(); }
public String getOriginalContextPath() { String uri = (String) getAttribute(RequestDispatcher.FORWARD_CONTEXT_PATH); if(uri != null) { return uri; } uri = (String) getAttribute(AsyncContext.ASYNC_CONTEXT_PATH); if(uri != null) { return uri; } return getContextPath(); }
public String getOriginalServletPath() { String uri = (String) getAttribute(RequestDispatcher.FORWARD_SERVLET_PATH); if(uri != null) { return uri; } uri = (String) getAttribute(AsyncContext.ASYNC_SERVLET_PATH); if(uri != null) { return uri; } return getServletPath(); }
requestImpl.setAttribute(FORWARD_REQUEST_URI, requestImpl.getRequestURI()); requestImpl.setAttribute(FORWARD_CONTEXT_PATH, requestImpl.getContextPath()); requestImpl.setAttribute(FORWARD_SERVLET_PATH, requestImpl.getServletPath()); requestImpl.setAttribute(FORWARD_PATH_INFO, requestImpl.getPathInfo()); requestImpl.setAttribute(FORWARD_QUERY_STRING, requestImpl.getQueryString()); requestImpl.setAttribute(ERROR_REQUEST_URI, requestImpl.getRequestURI()); requestImpl.setAttribute(ERROR_SERVLET_NAME, servletName); if (exception != null) { requestImpl.setAttribute(ERROR_EXCEPTION, exception); requestImpl.setAttribute(ERROR_EXCEPTION_TYPE, exception.getClass()); requestImpl.setAttribute(ERROR_MESSAGE, message); requestImpl.setAttribute(ERROR_STATUS_CODE, responseImpl.getStatus()); Map<String, Deque<String>> queryParameters = requestImpl.getQueryParameters(); String newQueryString = newServletPath.substring(qsPos + 1); newServletPath = newServletPath.substring(0, qsPos); requestImpl.getExchange().setQueryString(newQueryString); requestImpl.setQueryParameters(newQueryParameters); requestImpl.getExchange().setRelativePath(newServletPath); requestImpl.getExchange().setRequestPath(newRequestUri); requestImpl.getExchange().setRequestURI(newRequestUri); requestImpl.getExchange().getAttachment(ServletRequestContext.ATTACHMENT_KEY).setServletPathMatch(pathMatch); requestImpl.setServletContext(servletContext); responseImpl.setServletContext(servletContext);
final HttpServerExchange exchange = requestImpl.getExchange(); requestImpl.setAttribute(ASYNC_REQUEST_URI, requestImpl.getOriginalRequestURI()); requestImpl.setAttribute(ASYNC_CONTEXT_PATH, requestImpl.getOriginalContextPath()); requestImpl.setAttribute(ASYNC_SERVLET_PATH, requestImpl.getOriginalServletPath()); requestImpl.setAttribute(ASYNC_QUERY_STRING, requestImpl.getOriginalQueryString()); requestImpl.setQueryParameters(newQueryParameters); requestImpl.getExchange().setRelativePath(newServletPath); requestImpl.getExchange().setQueryString(newQueryString); requestImpl.getExchange().setRequestPath(newRequestUri); requestImpl.getExchange().setRequestURI(newRequestUri); requestImpl.setServletContext((ServletContextImpl) context); responseImpl.setServletContext((ServletContextImpl) context); Deployment deployment = requestImpl.getServletContext().getDeployment(); ServletPathMatch info = deployment.getServletPaths().getServletHandlerByPath(newServletPath); requestImpl.getExchange().getAttachment(ServletRequestContext.ATTACHMENT_KEY).setServletPathMatch(info);
Object pathInfo = null; Object queryString = null; Map<String, Deque<String>> queryParameters = requestImpl.getQueryParameters(); requestImpl.setQueryParameters(newQueryParameters); requestImpl.setAttribute(INCLUDE_QUERY_STRING, newQueryString); } else { requestImpl.setAttribute(INCLUDE_QUERY_STRING, ""); requestImpl.setAttribute(INCLUDE_REQUEST_URI, newRequestUri); requestImpl.setAttribute(INCLUDE_CONTEXT_PATH, servletContext.getContextPath()); requestImpl.setAttribute(INCLUDE_SERVLET_PATH, pathMatch.getMatched()); requestImpl.setAttribute(INCLUDE_PATH_INFO, pathMatch.getRemaining()); ServletContextImpl oldContext = requestImpl.getServletContext(); try { requestImpl.setServletContext(servletContext); responseImpl.setServletContext(servletContext); try { servletRequestContext.setServletRequest(request); servletRequestContext.setServletResponse(response); servletContext.getDeployment().getServletDispatcher().dispatchToServlet(requestImpl.getExchange(), chain, DispatcherType.INCLUDE); } catch (ServletException e) { throw e; requestImpl.setServletContext(oldContext); responseImpl.setServletContext(oldContext); servletRequestContext.setDispatcherType(oldDispatcherType);
this.queryString = servletRequest.getQueryString(); HttpSession session = servletRequest.getSession(false); if(session != null) { this.sessionId = session.getId(); } else { this.sessionId = servletRequest.getRequestedSessionId(); for(HeaderValues header : servletRequest.getExchange().getRequestHeaders()) { if(!IGNORE.contains(header.getHeaderName())) { headers.addAll(header.getHeaderName(), header); if(servletRequest.getQueryString() == null) { this.headers.add(Headers.REFERER, servletRequest.getRequestURL().toString()); } else { this.headers.add(Headers.REFERER, servletRequest.getRequestURL() + "?" + servletRequest.getQueryString()); for(Map.Entry<String, Cookie> cookie : servletRequest.getExchange().getResponseCookies().entrySet()) { if(cookie.getValue().getMaxAge() != null && cookie.getValue().getMaxAge() <= 0) { } else if(!cookie.getKey().equals(servletRequest.getServletContext().getSessionCookieConfig().getName())){ headers.add(Headers.COOKIE, cookie.getKey() + "=" + cookie.getValue().getValue());
public void handleNormalRequest(HttpServerExchange undertowExchange) throws Exception { HttpServletResponseImpl response = new HttpServletResponseImpl(undertowExchange, (ServletContextImpl)servletContext); HttpServletRequestImpl request = new HttpServletRequestImpl(undertowExchange, (ServletContextImpl)servletContext); ServletRequestContext servletRequestContext = new ServletRequestContext(((ServletContextImpl)servletContext) .getDeployment(), request, response, null); undertowExchange.putAttachment(ServletRequestContext.ATTACHMENT_KEY, servletRequestContext); doService(request, response); }
@Override public void invalidate() { invalid = true; if (servletRequestContext == null) { session.invalidate(null); } else { if(servletRequestContext.getOriginalRequest().getServletContext() == servletContext) { session.invalidate(servletRequestContext.getOriginalRequest().getExchange()); } else { session.invalidate(null); } } }
CharSequence host = request.getServerName(); boolean rewritten = false; boolean done = false; String queryString = request.getQueryString(); StringBuffer urlString = new StringBuffer(url); if (queryString != null && queryString.length() > 0) { urlString.insert(0, request.getContextPath()); request.setAttribute(rules[i].getEnvName(j), rules[i].getEnvResult(j)); String queryString = request.getQueryString(); String urlString = url.toString(); if (urlString.indexOf('?') != -1 && queryString != null) { chunk.append(request.getContextPath()); chunk.append(urlString); String requestPath = chunk.toString(); if (!host.equals(request.getServerName())) { exchange.getRequestHeaders().put(Headers.HOST, host + ":" + exchange.getHostPort());
HttpServletRequestImpl request = new HttpServletRequestImpl(undertowExchange, (ServletContextImpl)servletContext); request.setAttribute("HTTP_HANDLER", this); request.setAttribute("UNDERTOW_DESTINATION", undertowHTTPDestination); SSLSessionInfo ssl = undertowExchange.getConnection().getSslSessionInfo(); if (ssl != null) { request.setAttribute(SSL_CIPHER_SUITE_ATTRIBUTE, ssl.getCipherSuite()); try { request.setAttribute(SSL_PEER_CERT_CHAIN_ATTRIBUTE, ssl.getPeerCertificates()); } catch (Exception e) {
throw UndertowServletMessages.MESSAGES.pathWasNotSet(); ServerConnection con = servletRequest.getExchange().getConnection(); if (con.isPushSupported()) { HeaderMap newHeaders = new HeaderMap(); path = servletRequest.getContextPath() + "/" + path;
public String getOriginalQueryString() { String uri = (String) getAttribute(RequestDispatcher.FORWARD_QUERY_STRING); if(uri != null) { return uri; } uri = (String) getAttribute(AsyncContext.ASYNC_QUERY_STRING); if(uri != null) { return uri; } return getQueryString(); }
public String getOriginalRequestURI() { String uri = (String) getAttribute(RequestDispatcher.FORWARD_REQUEST_URI); if(uri != null) { return uri; } uri = (String) getAttribute(AsyncContext.ASYNC_REQUEST_URI); if(uri != null) { return uri; } return getRequestURI(); }
servletRequestContext.getOriginalRequest().asyncRequestDispatched(); if (forceComplete || currentThread == exchange.getIoThread()) { response.responseDone(); try { servletRequestContext.getOriginalRequest().closeAndDrainRequest(); servletRequestContext.getOriginalRequest().clearAttributes(); } catch (IOException e) { UndertowLogger.REQUEST_IO_LOGGER.ioException(e); servletRequestContext.getOriginalRequest().asyncRequestDispatched(); doDispatch(new Runnable() { @Override
@Override public void setReadListener(final ReadListener readListener) { if (readListener == null) { throw UndertowServletMessages.MESSAGES.listenerCannotBeNull(); } if (listener != null) { throw UndertowServletMessages.MESSAGES.listenerAlreadySet(); } if (!request.isAsyncStarted()) { throw UndertowServletMessages.MESSAGES.asyncNotStarted(); } asyncContext = request.getAsyncContext(); listener = readListener; channel.getReadSetter().set(internalListener = new ServletInputStreamChannelListener()); //we resume from an async task, after the request has been dispatched asyncContext.addAsyncTask(new Runnable() { @Override public void run() { channel.getIoThread().execute(new Runnable() { @Override public void run() { internalListener.handleEvent(channel); } }); } }); }
@Override public void close() throws IOException { ServletRequestContext servletRequestContext = exchange.getAttachment(ServletRequestContext.ATTACHMENT_KEY); if (!exchange.isComplete()) { try { HttpServletRequestImpl request = servletRequestContext.getOriginalRequest(); request.closeAndDrainRequest(); } finally { HttpServletResponseImpl response = servletRequestContext.getOriginalResponse(); response.closeStreamAndWriter(); } } else { try { HttpServletRequestImpl request = servletRequestContext.getOriginalRequest(); request.freeResources(); } finally { HttpServletResponseImpl response = servletRequestContext.getOriginalResponse(); response.freeResources(); } } }