Java 类javax.servlet.ServletRequestWrapper 实例源码

项目:lams    文件:HttpServletRequestImpl.java   
@Override
public AsyncContext startAsync(final ServletRequest servletRequest, final ServletResponse servletResponse) throws IllegalStateException {
    final ServletRequestContext servletRequestContext = exchange.getAttachment(ServletRequestContext.ATTACHMENT_KEY);
    if (!servletContext.getDeployment().getDeploymentInfo().isAllowNonStandardWrappers()) {
        if (servletRequestContext.getOriginalRequest() != servletRequest) {
            if (!(servletRequest instanceof ServletRequestWrapper)) {
                throw UndertowServletMessages.MESSAGES.requestWasNotOriginalOrWrapper(servletRequest);
            }
        }
        if (servletRequestContext.getOriginalResponse() != servletResponse) {
            if (!(servletResponse instanceof ServletResponseWrapper)) {
                throw UndertowServletMessages.MESSAGES.responseWasNotOriginalOrWrapper(servletResponse);
            }
        }
    }
    if (!isAsyncSupported()) {
        throw UndertowServletMessages.MESSAGES.startAsyncNotAllowed();
    } else if (asyncStarted) {
        throw UndertowServletMessages.MESSAGES.asyncAlreadyStarted();
    }
    asyncStarted = true;
    return asyncContext = new AsyncContextImpl(exchange, servletRequest, servletResponse, servletRequestContext, true, asyncContext);
}
项目:Wilma    文件:ServletHttpRequest.java   
/** Unwrap a ServletRequest.
 *
 * @see javax.servlet.ServletRequestWrapper
 * @see javax.servlet.http.HttpServletRequestWrapper
 * @param request 
 * @return The core ServletHttpRequest which must be the
 * underlying request object 
 */
public static ServletHttpRequest unwrap(ServletRequest request)
{
    while (!(request instanceof ServletHttpRequest))
    {
        if (request instanceof ServletRequestWrapper)
        {
            ServletRequestWrapper wrapper =
                (ServletRequestWrapper)request;
            request=wrapper.getRequest();
        }
        else
            throw new IllegalArgumentException("Does not wrap ServletHttpRequest");
    }

    return (ServletHttpRequest)request;
}
项目:spring-cloud-netflix    文件:FormBodyWrapperFilter.java   
@Override
public Object run() {
    RequestContext ctx = RequestContext.getCurrentContext();
    HttpServletRequest request = ctx.getRequest();
    FormBodyRequestWrapper wrapper = null;
    if (request instanceof HttpServletRequestWrapper) {
        HttpServletRequest wrapped = (HttpServletRequest) ReflectionUtils
                .getField(this.requestField, request);
        wrapper = new FormBodyRequestWrapper(wrapped);
        ReflectionUtils.setField(this.requestField, request, wrapper);
        if (request instanceof ServletRequestWrapper) {
            ReflectionUtils.setField(this.servletRequestField, request, wrapper);
        }
    }
    else {
        wrapper = new FormBodyRequestWrapper(request);
        ctx.setRequest(wrapper);
    }
    if (wrapper != null) {
        ctx.getZuulRequestHeaders().put("content-type", wrapper.getContentType());
    }
    return null;
}
项目:portals-pluto    文件:PortletAsyncContextImpl.java   
/**
 * Finds and returns the portlet servlet request wrapper that provides async functionality
 * 
 * @return
 */
@Override
public HttpServletRequestWrapper getAsyncRequestWrapper() {
   HttpServletPortletRequestWrapper wrapper = null;

   // find our wrapper in case it was wrapped again

   ServletRequest wreq = prctx.getAsyncServletRequest();
   while ((wreq instanceof ServletRequestWrapper) && !(wreq instanceof HttpServletPortletRequestWrapper)) {
      wreq = ((ServletRequestWrapper) wreq).getRequest();
   }

   if (wreq instanceof HttpServletPortletRequestWrapper) {
      wrapper = (HttpServletPortletRequestWrapper) wreq;
   }

   return wrapper;
}
项目:tomcat7    文件:ApplicationDispatcher.java   
/**
 * Unwrap the request if we have wrapped it.
 */
private void unwrapRequest(State state) {

    if (state.wrapRequest == null)
        return;

    if (state.outerRequest.isAsyncStarted()) {
        if (!state.outerRequest.getAsyncContext().hasOriginalRequestAndResponse()) {
            return;
        }
    }

    ServletRequest previous = null;
    ServletRequest current = state.outerRequest;
    while (current != null) {

        // If we run into the container request we are done
        if ((current instanceof Request)
            || (current instanceof RequestFacade))
            break;

        // Remove the current request if it is our wrapper
        if (current == state.wrapRequest) {
            ServletRequest next =
              ((ServletRequestWrapper) current).getRequest();
            if (previous == null)
                state.outerRequest = next;
            else
                ((ServletRequestWrapper) previous).setRequest(next);
            break;
        }

        // Advance to the next request in the chain
        previous = current;
        current = ((ServletRequestWrapper) current).getRequest();

    }

}
项目:tomcat7    文件:TestAsyncContextImpl.java   
@Override
public void service(ServletRequest req, ServletResponse resp)
        throws ServletException, IOException {
    if (DispatcherType.ASYNC != req.getDispatcherType()) {
        AsyncContext asyncContext;
        if ("y".equals(req.getParameter(CUSTOM_REQ_RESP))) {
            asyncContext = req.startAsync(
                    new ServletRequestWrapper(req),
                    new ServletResponseWrapper(resp));
        } else {
            asyncContext = req.startAsync();
        }
        if ("y".equals(req.getParameter(EMPTY_DISPATCH))) {
            asyncContext.dispatch();
        } else {
            asyncContext.dispatch("/target");
        }
        try {
            asyncContext.dispatch("/nonExistingServlet");
            TestAsyncContextImpl.track("FAIL");
        } catch (IllegalStateException e) {
            TestAsyncContextImpl.track("OK");
        }
    } else {
        TestAsyncContextImpl.track("DispatchingGenericServletGet-");
    }
}
项目:tomcat7    文件:TestAsyncContextImpl.java   
@Override
public void service(ServletRequest req, ServletResponse res)
        throws ServletException, IOException {
    if (req instanceof ServletRequestWrapper
            && res instanceof ServletResponseWrapper) {
        TestAsyncContextImpl.track("CustomGenericServletGet-");
    }
}
项目:datarouter    文件:CachingHttpServletRequest.java   
public static <T> Optional<T> getWrappedRequest(ServletRequest request, Class<T> requiredType){
    if(requiredType.isInstance(request)){
        return Optional.of(requiredType.cast(request));
    }
    if(request instanceof ServletRequestWrapper){
        return getWrappedRequest(((ServletRequestWrapper)request).getRequest(), requiredType);
    }
    return Optional.empty();
}
项目:lams    文件:WebUtils.java   
/**
 * Return an appropriate request object of the specified type, if available,
 * unwrapping the given request as far as necessary.
 * @param request the servlet request to introspect
 * @param requiredType the desired type of request object
 * @return the matching request object, or {@code null} if none
 * of that type is available
 */
@SuppressWarnings("unchecked")
public static <T> T getNativeRequest(ServletRequest request, Class<T> requiredType) {
    if (requiredType != null) {
        if (requiredType.isInstance(request)) {
            return (T) request;
        }
        else if (request instanceof ServletRequestWrapper) {
            return getNativeRequest(((ServletRequestWrapper) request).getRequest(), requiredType);
        }
    }
    return null;
}
项目:lams    文件:ApplicationDispatcher.java   
/**
 * Unwrap the request if we have wrapped it.
 */
private void unwrapRequest(State state) {

    if (state.wrapRequest == null)
        return;

    ServletRequest previous = null;
    ServletRequest current = state.outerRequest;
    while (current != null) {

        // If we run into the container request we are done
        if ((current instanceof Request)
            || (current instanceof RequestFacade))
            break;

        // Remove the current request if it is our wrapper
        if (current == state.wrapRequest) {
            ServletRequest next =
              ((ServletRequestWrapper) current).getRequest();
            if (previous == null)
                state.outerRequest = next;
            else
                ((ServletRequestWrapper) previous).setRequest(next);
            break;
        }

        // Advance to the next request in the chain
        previous = current;
        current = ((ServletRequestWrapper) current).getRequest();

    }

}
项目:jerrydog    文件:ApplicationDispatcher.java   
/**
 * Unwrap the request if we have wrapped it.
 */
private void unwrapRequest() {

    if (wrapRequest == null)
        return;

    ServletRequest previous = null;
    ServletRequest current = outerRequest;
    while (current != null) {

        // If we run into the container request we are done
        if ((current instanceof Request)
            || (current instanceof RequestFacade))
            break;

        // Remove the current request if it is our wrapper
        if (current == wrapRequest) {
            ServletRequest next =
              ((ServletRequestWrapper) current).getRequest();
            if (previous == null)
                outerRequest = next;
            else
                ((ServletRequestWrapper) previous).setRequest(next);
            break;
        }

        // Advance to the next request in the chain
        previous = current;
        current = ((ServletRequestWrapper) current).getRequest();

    }

}
项目:jerrydog    文件:ApplicationDispatcher.java   
/**
 * Create and return a request wrapper that has been inserted in the
 * appropriate spot in the request chain.
 */
private ServletRequest wrapRequest() {

    // Locate the request we should insert in front of
    ServletRequest previous = null;
    ServletRequest current = outerRequest;
    while (current != null) {
        if ("org.apache.catalina.servlets.InvokerHttpRequest".
            equals(current.getClass().getName()))
            break; // KLUDGE - Make nested RD.forward() using invoker work
        if (!(current instanceof ServletRequestWrapper))
            break;
        if (current instanceof ApplicationHttpRequest)
            break;
        if (current instanceof ApplicationRequest)
            break;
        if (current instanceof Request)
            break;
        previous = current;
        current = ((ServletRequestWrapper) current).getRequest();
    }

    // Instantiate a new wrapper at this point and insert it in the chain
    ServletRequest wrapper = null;
    if ((current instanceof ApplicationHttpRequest) ||
        (current instanceof HttpRequest) ||
        (current instanceof HttpServletRequest))
        wrapper = new ApplicationHttpRequest((HttpServletRequest) current);
    else
        wrapper = new ApplicationRequest(current);
    if (previous == null)
        outerRequest = wrapper;
    else
        ((ServletRequestWrapper) previous).setRequest(wrapper);
    wrapRequest = wrapper;
    return (wrapper);

}
项目:apache-tomcat-7.0.73-with-comment    文件:ApplicationDispatcher.java   
/**
 * Unwrap the request if we have wrapped it.
 */
private void unwrapRequest(State state) {

    if (state.wrapRequest == null)
        return;

    if (state.outerRequest.isAsyncStarted()) {
        if (!state.outerRequest.getAsyncContext().hasOriginalRequestAndResponse()) {
            return;
        }
    }

    ServletRequest previous = null;
    ServletRequest current = state.outerRequest;
    while (current != null) {

        // If we run into the container request we are done
        if ((current instanceof Request)
            || (current instanceof RequestFacade))
            break;

        // Remove the current request if it is our wrapper
        if (current == state.wrapRequest) {
            ServletRequest next =
              ((ServletRequestWrapper) current).getRequest();
            if (previous == null)
                state.outerRequest = next;
            else
                ((ServletRequestWrapper) previous).setRequest(next);
            break;
        }

        // Advance to the next request in the chain
        previous = current;
        current = ((ServletRequestWrapper) current).getRequest();

    }

}
项目:apache-tomcat-7.0.73-with-comment    文件:TestAsyncContextImpl.java   
@Override
public void service(ServletRequest req, ServletResponse resp)
        throws ServletException, IOException {
    if (DispatcherType.ASYNC != req.getDispatcherType()) {
        AsyncContext asyncContext;
        if ("y".equals(req.getParameter(CUSTOM_REQ_RESP))) {
            asyncContext = req.startAsync(
                    new ServletRequestWrapper(req),
                    new ServletResponseWrapper(resp));
        } else {
            asyncContext = req.startAsync();
        }
        if ("y".equals(req.getParameter(EMPTY_DISPATCH))) {
            asyncContext.dispatch();
        } else {
            asyncContext.dispatch("/target");
        }
        try {
            asyncContext.dispatch("/nonExistingServlet");
            TestAsyncContextImpl.track("FAIL");
        } catch (IllegalStateException e) {
            TestAsyncContextImpl.track("OK");
        }
    } else {
        TestAsyncContextImpl.track("DispatchingGenericServletGet-");
    }
}
项目:apache-tomcat-7.0.73-with-comment    文件:TestAsyncContextImpl.java   
@Override
public void service(ServletRequest req, ServletResponse res)
        throws ServletException, IOException {
    if (req instanceof ServletRequestWrapper
            && res instanceof ServletResponseWrapper) {
        TestAsyncContextImpl.track("CustomGenericServletGet-");
    }
}
项目:lazycat    文件:ApplicationDispatcher.java   
/**
 * Unwrap the request if we have wrapped it.
 */
private void unwrapRequest(State state) {

    if (state.wrapRequest == null)
        return;

    if (state.outerRequest.isAsyncStarted()) {
        if (!state.outerRequest.getAsyncContext().hasOriginalRequestAndResponse()) {
            return;
        }
    }

    ServletRequest previous = null;
    ServletRequest current = state.outerRequest;
    while (current != null) {

        // If we run into the container request we are done
        if ((current instanceof Request) || (current instanceof RequestFacade))
            break;

        // Remove the current request if it is our wrapper
        if (current == state.wrapRequest) {
            ServletRequest next = ((ServletRequestWrapper) current).getRequest();
            if (previous == null)
                state.outerRequest = next;
            else
                ((ServletRequestWrapper) previous).setRequest(next);
            break;
        }

        // Advance to the next request in the chain
        previous = current;
        current = ((ServletRequestWrapper) current).getRequest();

    }

}
项目:HttpSessionReplacer    文件:HttpRequestWrapper.java   
/**
 * Creates request wrapper from original requests.
 *
 * @param req
 *          original servlet request
 * @param servletContext
 */
public HttpRequestWrapper(HttpServletRequest req, ServletContext servletContext) {
  super(req);
  this.servletContext = servletContext;
  manager = (SessionManager)servletContext.getAttribute(Attributes.SESSION_MANAGER);
  ServletRequest originalRequest = req;
  while (originalRequest instanceof ServletRequestWrapper) {
    if (originalRequest instanceof HttpRequestWrapper) {
      break;
    }
    originalRequest = ((ServletRequestWrapper)originalRequest).getRequest();
  }

  embeddedRequest = (originalRequest instanceof HttpRequestWrapper) ? (HttpRequestWrapper)originalRequest : null;
}
项目:spring4-understanding    文件:WebUtils.java   
/**
 * Return an appropriate request object of the specified type, if available,
 * unwrapping the given request as far as necessary.
 * @param request the servlet request to introspect
 * @param requiredType the desired type of request object
 * @return the matching request object, or {@code null} if none
 * of that type is available
 */
@SuppressWarnings("unchecked")
public static <T> T getNativeRequest(ServletRequest request, Class<T> requiredType) {
    if (requiredType != null) {
        if (requiredType.isInstance(request)) {
            return (T) request;
        }
        else if (request instanceof ServletRequestWrapper) {
            return getNativeRequest(((ServletRequestWrapper) request).getRequest(), requiredType);
        }
    }
    return null;
}
项目:simbest-cores    文件:AntiSamyFilterTest.java   
@Test
public void testNonHttpRequestPassesThrough() throws Exception {
    String param = "valid_param";
    String value = "should pass through";
    ServletRequest servletRequest = new ServletRequestWrapper(request);
    request.setParameter(param, value);
    filter.doFilter(servletRequest, response, filterChain);

    ServletRequest originalRequest = filterChain.getRequest();
    assertThat(originalRequest.getParameter(param), equalTo(value));
    assertThat(originalRequest, is(originalRequest));
}
项目:opengse    文件:HttpUtil.java   
/**
 * If the specified request was a forwarded or included request, unwrap it
 * and return the original request.
 */
public static HttpServletRequest unwrap(HttpServletRequest req) {
  if (req instanceof ServletRequestWrapper) {
    ServletRequestWrapper wrapper = (ServletRequestWrapper) req;
    req = (HttpServletRequest) wrapper.getRequest(); // unwrap
  }
  return req;
}
项目:metadatamanagement    文件:StaticResourcesProductionFilterTest.java   
@Test
public void testDoFilterWithWrongRequest() throws IOException, ServletException {
  // Arrange
  StaticResourcesProductionFilter filter = new StaticResourcesProductionFilter();
  ServletRequestWrapper request = Mockito.mock(ServletRequestWrapper.class);
  HttpServletResponse response = Mockito.mock(HttpServletResponse.class);
  FilterChain chain = Mockito.mock(FilterChain.class);

  // Act
  filter.doFilter(request, response, chain); // should break up

  // Assert
  assertThat(filter, not(nullValue()));
}
项目:winstone    文件:SimpleRequestDispatcher.java   
/**
 * Unwrap back to the original container allocated request object
 */
protected WinstoneRequest getUnwrappedRequest(final ServletRequest request) {
    ServletRequest workingRequest = request;
    while (workingRequest instanceof ServletRequestWrapper) {
        workingRequest = ((ServletRequestWrapper) workingRequest).getRequest();
    }
    return (WinstoneRequest) workingRequest;
}
项目:class-guard    文件:WebUtils.java   
/**
 * Return an appropriate request object of the specified type, if available,
 * unwrapping the given request as far as necessary.
 * @param request the servlet request to introspect
 * @param requiredType the desired type of request object
 * @return the matching request object, or {@code null} if none
 * of that type is available
 */
@SuppressWarnings("unchecked")
public static <T> T getNativeRequest(ServletRequest request, Class<T> requiredType) {
    if (requiredType != null) {
        if (requiredType.isInstance(request)) {
            return (T) request;
        }
        else if (request instanceof ServletRequestWrapper) {
            return getNativeRequest(((ServletRequestWrapper) request).getRequest(), requiredType);
        }
    }
    return null;
}
项目:class-guard    文件:ApplicationDispatcher.java   
/**
 * Unwrap the request if we have wrapped it.
 */
private void unwrapRequest(State state) {

    if (state.wrapRequest == null)
        return;

    if (state.outerRequest.isAsyncStarted()) {
        if (!state.outerRequest.getAsyncContext().hasOriginalRequestAndResponse()) {
            return;
        }
    }

    ServletRequest previous = null;
    ServletRequest current = state.outerRequest;
    while (current != null) {

        // If we run into the container request we are done
        if ((current instanceof Request)
            || (current instanceof RequestFacade))
            break;

        // Remove the current request if it is our wrapper
        if (current == state.wrapRequest) {
            ServletRequest next =
              ((ServletRequestWrapper) current).getRequest();
            if (previous == null)
                state.outerRequest = next;
            else
                ((ServletRequestWrapper) previous).setRequest(next);
            break;
        }

        // Advance to the next request in the chain
        previous = current;
        current = ((ServletRequestWrapper) current).getRequest();

    }

}
项目:class-guard    文件:TestAsyncContextImpl.java   
@Override
public void service(ServletRequest req, ServletResponse resp)
        throws ServletException, IOException {
    if (DispatcherType.ASYNC != req.getDispatcherType()) {
        AsyncContext asyncContext;
        if ("y".equals(req.getParameter(CUSTOM_REQ_RESP))) {
            asyncContext = req.startAsync(
                    new ServletRequestWrapper(req),
                    new ServletResponseWrapper(resp));
        } else {
            asyncContext = req.startAsync();
        }
        if ("y".equals(req.getParameter(EMPTY_DISPATCH))) {
            asyncContext.dispatch();
        } else {
            asyncContext.dispatch("/target");
        }
        try {
            asyncContext.dispatch("/nonExistingServlet");
            TestAsyncContextImpl.track("FAIL");
        } catch (IllegalStateException e) {
            TestAsyncContextImpl.track("OK");
        }
    } else {
        TestAsyncContextImpl.track("DispatchingGenericServletGet-");
    }
}
项目:class-guard    文件:TestAsyncContextImpl.java   
@Override
public void service(ServletRequest req, ServletResponse res)
        throws ServletException, IOException {
    if (req instanceof ServletRequestWrapper
            && res instanceof ServletResponseWrapper) {
        TestAsyncContextImpl.track("CustomGenericServletGet-");
    }
}
项目:apache-tomcat-7.0.57    文件:ApplicationDispatcher.java   
/**
 * Unwrap the request if we have wrapped it.
 */
private void unwrapRequest(State state) {

    if (state.wrapRequest == null)
        return;

    if (state.outerRequest.isAsyncStarted()) {
        if (!state.outerRequest.getAsyncContext().hasOriginalRequestAndResponse()) {
            return;
        }
    }

    ServletRequest previous = null;
    ServletRequest current = state.outerRequest;
    while (current != null) {

        // If we run into the container request we are done
        if ((current instanceof Request)
            || (current instanceof RequestFacade))
            break;

        // Remove the current request if it is our wrapper
        if (current == state.wrapRequest) {
            ServletRequest next =
              ((ServletRequestWrapper) current).getRequest();
            if (previous == null)
                state.outerRequest = next;
            else
                ((ServletRequestWrapper) previous).setRequest(next);
            break;
        }

        // Advance to the next request in the chain
        previous = current;
        current = ((ServletRequestWrapper) current).getRequest();

    }

}
项目:apache-tomcat-7.0.57    文件:TestAsyncContextImpl.java   
@Override
public void service(ServletRequest req, ServletResponse resp)
        throws ServletException, IOException {
    if (DispatcherType.ASYNC != req.getDispatcherType()) {
        AsyncContext asyncContext;
        if ("y".equals(req.getParameter(CUSTOM_REQ_RESP))) {
            asyncContext = req.startAsync(
                    new ServletRequestWrapper(req),
                    new ServletResponseWrapper(resp));
        } else {
            asyncContext = req.startAsync();
        }
        if ("y".equals(req.getParameter(EMPTY_DISPATCH))) {
            asyncContext.dispatch();
        } else {
            asyncContext.dispatch("/target");
        }
        try {
            asyncContext.dispatch("/nonExistingServlet");
            TestAsyncContextImpl.track("FAIL");
        } catch (IllegalStateException e) {
            TestAsyncContextImpl.track("OK");
        }
    } else {
        TestAsyncContextImpl.track("DispatchingGenericServletGet-");
    }
}
项目:apache-tomcat-7.0.57    文件:TestAsyncContextImpl.java   
@Override
public void service(ServletRequest req, ServletResponse res)
        throws ServletException, IOException {
    if (req instanceof ServletRequestWrapper
            && res instanceof ServletResponseWrapper) {
        TestAsyncContextImpl.track("CustomGenericServletGet-");
    }
}
项目:apache-tomcat-7.0.57    文件:TestAsyncContextImpl.java   
@Override
public void service(ServletRequest req, ServletResponse resp)
        throws ServletException, IOException {
    if (DispatcherType.ASYNC != req.getDispatcherType()) {
        AsyncContext asyncContext;
        if ("y".equals(req.getParameter(CUSTOM_REQ_RESP))) {
            asyncContext = req.startAsync(
                    new ServletRequestWrapper(req),
                    new ServletResponseWrapper(resp));
        } else {
            asyncContext = req.startAsync();
        }
        if ("y".equals(req.getParameter(EMPTY_DISPATCH))) {
            asyncContext.dispatch();
        } else {
            asyncContext.dispatch("/target");
        }
        try {
            asyncContext.dispatch("/nonExistingServlet");
            TestAsyncContextImpl.track("FAIL");
        } catch (IllegalStateException e) {
            TestAsyncContextImpl.track("OK");
        }
    } else {
        TestAsyncContextImpl.track("DispatchingGenericServletGet-");
    }
}
项目:apache-tomcat-7.0.57    文件:TestAsyncContextImpl.java   
@Override
public void service(ServletRequest req, ServletResponse res)
        throws ServletException, IOException {
    if (req instanceof ServletRequestWrapper
            && res instanceof ServletResponseWrapper) {
        TestAsyncContextImpl.track("CustomGenericServletGet-");
    }
}
项目:apache-tomcat-7.0.57    文件:ApplicationDispatcher.java   
/**
 * Unwrap the request if we have wrapped it.
 */
private void unwrapRequest(State state) {

    if (state.wrapRequest == null)
        return;

    if (state.outerRequest.isAsyncStarted()) {
        if (!state.outerRequest.getAsyncContext().hasOriginalRequestAndResponse()) {
            return;
        }
    }

    ServletRequest previous = null;
    ServletRequest current = state.outerRequest;
    while (current != null) {

        // If we run into the container request we are done
        if ((current instanceof Request)
            || (current instanceof RequestFacade))
            break;

        // Remove the current request if it is our wrapper
        if (current == state.wrapRequest) {
            ServletRequest next =
              ((ServletRequestWrapper) current).getRequest();
            if (previous == null)
                state.outerRequest = next;
            else
                ((ServletRequestWrapper) previous).setRequest(next);
            break;
        }

        // Advance to the next request in the chain
        previous = current;
        current = ((ServletRequestWrapper) current).getRequest();

    }

}
项目:spring-cloud-netflix    文件:FormBodyWrapperFilter.java   
public FormBodyWrapperFilter(FormHttpMessageConverter formHttpMessageConverter) {
    this.formHttpMessageConverter = formHttpMessageConverter;
    this.requestField = ReflectionUtils.findField(HttpServletRequestWrapper.class,
            "req", HttpServletRequest.class);
    this.servletRequestField = ReflectionUtils.findField(ServletRequestWrapper.class,
            "request", ServletRequest.class);
    Assert.notNull(this.requestField,
            "HttpServletRequestWrapper.req field not found");
    Assert.notNull(this.servletRequestField,
            "ServletRequestWrapper.request field not found");
    this.requestField.setAccessible(true);
    this.servletRequestField.setAccessible(true);
}
项目:jira_http_authenticator    文件:RemoteUserAuthenticator.java   
private HttpServletRequest unwrapRequestIfNeeded(HttpServletRequest request) {
    if (request instanceof ServletRequestWrapper) {
        return (HttpServletRequest) ((ServletRequestWrapper) request).getRequest();
    }

    return request;
}
项目:HowTomcatWorks    文件:ApplicationDispatcher.java   
/**
 * Unwrap the request if we have wrapped it.
 */
private void unwrapRequest() {

    if (wrapRequest == null)
        return;

    ServletRequest previous = null;
    ServletRequest current = outerRequest;
    while (current != null) {

        // If we run into the container request we are done
        if ((current instanceof Request)
            || (current instanceof RequestFacade))
            break;

        // Remove the current request if it is our wrapper
        if (current == wrapRequest) {
            ServletRequest next =
              ((ServletRequestWrapper) current).getRequest();
            if (previous == null)
                outerRequest = next;
            else
                ((ServletRequestWrapper) previous).setRequest(next);
            break;
        }

        // Advance to the next request in the chain
        previous = current;
        current = ((ServletRequestWrapper) current).getRequest();

    }

}
项目:HowTomcatWorks    文件:ApplicationDispatcher.java   
/**
 * Create and return a request wrapper that has been inserted in the
 * appropriate spot in the request chain.
 */
private ServletRequest wrapRequest() {

    // Locate the request we should insert in front of
    ServletRequest previous = null;
    ServletRequest current = outerRequest;
    while (current != null) {
        if ("org.apache.catalina.servlets.InvokerHttpRequest".
            equals(current.getClass().getName()))
            break; // KLUDGE - Make nested RD.forward() using invoker work
        if (!(current instanceof ServletRequestWrapper))
            break;
        if (current instanceof ApplicationHttpRequest)
            break;
        if (current instanceof ApplicationRequest)
            break;
        if (current instanceof Request)
            break;
        previous = current;
        current = ((ServletRequestWrapper) current).getRequest();
    }

    // Instantiate a new wrapper at this point and insert it in the chain
    ServletRequest wrapper = null;
    if ((current instanceof ApplicationHttpRequest) ||
        (current instanceof HttpRequest) ||
        (current instanceof HttpServletRequest))
        wrapper = new ApplicationHttpRequest((HttpServletRequest) current);
    else
        wrapper = new ApplicationRequest(current);
    if (previous == null)
        outerRequest = wrapper;
    else
        ((ServletRequestWrapper) previous).setRequest(wrapper);
    wrapRequest = wrapper;
    return (wrapper);

}
项目:align-api-project    文件:HTMLAServProfile.java   
public void doFilter( ServletRequest request, ServletResponse response)
   throws IOException, ServletException {
   if ( response instanceof ParameterServletResponseWrapper &&
 request instanceof ServletRequestWrapper ) {
((ParameterServletResponseWrapper)response).setParameterMap( ((ServletRequestWrapper)request).getParameterMap() );
   }
       }
项目:WBSAirback    文件:ApplicationDispatcher.java   
/**
 * Unwrap the request if we have wrapped it.
 */
private void unwrapRequest(State state) {

    if (state.wrapRequest == null)
        return;

    ServletRequest previous = null;
    ServletRequest current = state.outerRequest;
    while (current != null) {

        // If we run into the container request we are done
        if ((current instanceof Request)
            || (current instanceof RequestFacade))
            break;

        // Remove the current request if it is our wrapper
        if (current == state.wrapRequest) {
            ServletRequest next =
              ((ServletRequestWrapper) current).getRequest();
            if (previous == null)
                state.outerRequest = next;
            else
                ((ServletRequestWrapper) previous).setRequest(next);
            break;
        }

        // Advance to the next request in the chain
        previous = current;
        current = ((ServletRequestWrapper) current).getRequest();

    }

}
项目:mymam    文件:UploadRenderer.java   
private UploadMultipartRequestWrapper getMultiPartRequestInChain(FacesContext facesContext) {
    Object request = facesContext.getExternalContext().getRequest();
    while (request instanceof ServletRequestWrapper) {
        if (request instanceof UploadMultipartRequestWrapper) {
            return (UploadMultipartRequestWrapper) request;
        } else {
            request = ((ServletRequestWrapper) request).getRequest();
        }
    }
    return null;
}
项目:confluence_http_authenticator    文件:RemoteUserAuthenticator.java   
private HttpServletRequest unwrapRequestIfNeeded(HttpServletRequest request) {
    if (request instanceof ServletRequestWrapper) {
        return (HttpServletRequest) ((ServletRequestWrapper) request).getRequest();
    }

    return request;
}