/** * Initialize {@code ContainerRequest} instance to used used to handle {@code servletRequest}. */ private void initContainerRequest( final ContainerRequest requestContext, final HttpServletRequest servletRequest, final HttpServletResponse servletResponse, final ResponseWriter responseWriter) throws IOException { requestContext.setEntityStream(servletRequest.getInputStream()); requestContext.setRequestScopedInitializer(requestScopedInitializer.get(new RequestContextProvider() { @Override public HttpServletRequest getHttpServletRequest() { return servletRequest; } @Override public HttpServletResponse getHttpServletResponse() { return servletResponse; } })); requestContext.setWriter(responseWriter); addRequestHeaders(servletRequest, requestContext); // Check if any servlet filters have consumed a request entity // of the media type application/x-www-form-urlencoded // This can happen if a filter calls request.getParameter(...) filterFormParameters(servletRequest, requestContext); }
/** * Initialize {@code ContainerRequest} instance to used used to handle {@code servletRequest}. */ private void initContainerRequest( final ContainerRequest requestContext, final HttpServletRequest servletRequest, final HttpServletResponse servletResponse, final ResponseWriter responseWriter) throws IOException { requestContext.setEntityStream(servletRequest.getInputStream()); requestContext.setRequestScopedInitializer(requestScopedInitializer.get(new RequestContextProvider() { @Override public HttpServletRequest getHttpServletRequest() { return servletRequest; } @Override public HttpServletResponse getHttpServletResponse() { return servletResponse; } })); requestContext.setWriter(responseWriter); addRequestHeaders(servletRequest, requestContext); // Check if any servlet filters have consumed a request entity // of the media type application/x-www-form-urlencoded // This can happen if a filter calls request.getParameter(...) filterFormParameters(servletRequest, requestContext); }
requestContext.setEntityStream(new NettyInputStream(isList)); } else { requestContext.setEntityStream(new InputStream() { @Override public int read() throws IOException {
requestContext.setEntityStream(new NettyInputStream(isList)); } else { requestContext.setEntityStream(new InputStream() { @Override public int read() throws IOException {
protected Entity toRequestMessage(SecurityFilter.FilterContext context) { switch (context.getMethod().toLowerCase()) { case "get": case "options": case "head": case "delete": return null; default: break; } return filterFunction -> { // this is request message (inbound) // this will publish bytes coming in from external source (to security provider) Flow.Publisher<ByteBuffer> publisherFromJersey = new InputStreamPublisher(context.getJerseyRequest().getEntityStream(), 1024); SubscriberInputStream subscriberInputStream = new SubscriberInputStream(); context.getJerseyRequest().setEntityStream(subscriberInputStream); Flow.Publisher<ByteBuffer> publisherToJersey = filterFunction.apply(publisherFromJersey); // this will receive request bytes coming in from security provider (filtered) publisherToJersey.subscribe(subscriberInputStream); }; }
exchange.getRequestMethod(), getSecurityContext(exchange.getPrincipal(), isSecure), new MapPropertiesDelegate()); requestContext.setEntityStream(exchange.getRequestBody()); requestContext.getHeaders().putAll(exchange.getRequestHeaders()); requestContext.setWriter(responseWriter);
getSecurityContext(request), new MapPropertiesDelegate()); requestContext.setEntityStream(request.getInputStream()); final Enumeration<String> headerNames = request.getHeaderNames(); while (headerNames.hasMoreElements()) {
containerRequest.setEntityStream(new ByteArrayInputStream(clientOutput.toByteArray()));
.as(InputStream.class) .thenAccept(is -> { requestContext.setEntityStream(is);
@Override public void handle(final Request request, final Response response) { final ResponseWriter responseWriter = new ResponseWriter(response, scheduler); final URI baseUri = getBaseUri(request); final URI requestUri = getRequestUri(request, baseUri); try { final ContainerRequest requestContext = new ContainerRequest(baseUri, requestUri, request.getMethod(), getSecurityContext(request), new MapPropertiesDelegate()); requestContext.setEntityStream(request.getInputStream()); for (final String headerName : request.getNames()) { requestContext.headers(headerName, request.getValue(headerName)); } requestContext.setWriter(responseWriter); requestContext.setRequestScopedInitializer(injectionManager -> { injectionManager.<Ref<Request>>getInstance(RequestTYPE).set(request); injectionManager.<Ref<Response>>getInstance(ResponseTYPE).set(response); }); appHandler.handle(requestContext); } catch (final Exception ex) { throw new RuntimeException(ex); } finally { if (!responseWriter.isSuspended()) { close(response); } } }
@Override public void service(final Request request, final Response response) { final ResponseWriter responseWriter = new ResponseWriter(response, configSetStatusOverSendError); try { logger.debugLog("GrizzlyHttpContainer.service(...) started"); URI baseUri = getBaseUri(request); URI requestUri = getRequestUri(request); final ContainerRequest requestContext = new ContainerRequest(baseUri, requestUri, request.getMethod().getMethodString(), getSecurityContext(request), new GrizzlyRequestPropertiesDelegate(request)); requestContext.setEntityStream(request.getInputStream()); for (final String headerName : request.getHeaderNames()) { requestContext.headers(headerName, request.getHeaders(headerName)); } requestContext.setWriter(responseWriter); requestContext.setRequestScopedInitializer(injectionManager -> { injectionManager.<Ref<Request>>getInstance(RequestTYPE).set(request); injectionManager.<Ref<Response>>getInstance(ResponseTYPE).set(response); }); appHandler.handle(requestContext); } finally { logger.debugLog("GrizzlyHttpContainer.service(...) finished"); } }
requestInputStream = servletRequest.getInputStream(); if (requestInputStream != null) { requestContext.setEntityStream(requestInputStream);
public void setEntityStream(InputStream input) { ContainerRequestCache.get().setEntityStream(input); }
public void setEntityStream(InputStream input) { ContainerRequestCache.get().setEntityStream(input); }
private ContainerRequest createContainerRequest(URI baseUri, URI requestUri, String method, String content, Map<String, String> headers, SecurityContext securityContext, PropertiesDelegate propertiesDelegate) { URI uri = URI.create(baseUri.getPath() + "/"); ContainerRequest containerRequest = new ContainerRequest(uri, requestUri, method, securityContext, propertiesDelegate); containerRequest.setEntityStream(new ByteArrayInputStream(content.getBytes())); for (Map.Entry<String, String> headerEntry : headers.entrySet()) { containerRequest.getHeaders().add(headerEntry.getKey(), headerEntry.getValue()); } return containerRequest; }
@Override protected Object doInvoke(MuleEvent event) throws Exception { ContainerRequest req = buildRequest(event); req.setSecurityContext(DEFAULT_SECURITY_CONTEXT); MuleMessage message = event.getMessage(); req.setEntityStream(getInputStream(message)); copyProperties(message, req); return execute(req, event); }
/** * Creates the container request from the http request * * @param httpRequest * @return */ protected ContainerRequest createContainerRequest(MessageContext context) { Application<ApplicationConfiguration> application = context.getApplication(); FullHttpRequest httpRequest = context.getRequest(); URI baseUri = URI.create(context.getBaseUri().resolve(application.getPath()) + "/"); URI requestUri = HttpUtil.createURI(httpRequest.getUri()); ContainerRequest containerRequest = new ContainerRequest(baseUri, requestUri, httpRequest.getMethod().name(), null, new MapPropertiesDelegate()); // containerRequest.setProperty(REQUEST_PROPERTY_REMOTE_ADDR, context.getRequest().channel().remoteAddress()); containerRequest.setEntityStream(new ByteBufInputStream(httpRequest.content())); for (Map.Entry<String, String> headerEntry : httpRequest.headers()) { containerRequest.getHeaders().add(headerEntry.getKey(), headerEntry.getValue()); } return containerRequest; }
protected void messageReceived(ChannelHandlerContext ctx, FullHttpRequest request) throws Exception { URI baseUri = getBaseUri(ctx, request); URI requestUri = baseUri.resolve(request.getUri()); ByteBuf responseContent = PooledByteBufAllocator.DEFAULT.buffer(); FullHttpResponse response = new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.OK, responseContent); NettyRestResponseWriter responseWriter = new NettyRestResponseWriter(ctx, response); ContainerRequest containerRequest = new ContainerRequest(baseUri, requestUri, request.getMethod().name(), getSecurityContext(), new MapPropertiesDelegate()); containerRequest.setEntityStream(new ByteBufInputStream(request.content())); HttpHeaders httpHeaders = request.headers(); for (String headerName: httpHeaders.names()) { List<String> headerValues = httpHeaders.getAll(headerName); containerRequest.headers(headerName, headerValues); } containerRequest.setWriter(responseWriter); try { applicationHandler.handle(containerRequest); } finally { responseWriter.releaseConnection(); } }
protected void messageReceived(ChannelHandlerContext ctx, FullHttpRequest request) throws Exception { URI baseUri = getBaseUri(ctx, request); URI requestUri = baseUri.resolve(request.getUri()); ByteBuf responseContent = PooledByteBufAllocator.DEFAULT.buffer(); FullHttpResponse response = new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.OK, responseContent); NettyRestResponseWriter responseWriter = new NettyRestResponseWriter(ctx, response); ContainerRequest containerRequest = new ContainerRequest(baseUri, requestUri, request.getMethod().name(), getSecurityContext(), new MapPropertiesDelegate()); containerRequest.setEntityStream(new ByteBufInputStream(request.content())); HttpHeaders httpHeaders = request.headers(); for (String headerName: httpHeaders.names()) { List<String> headerValues = httpHeaders.getAll(headerName); containerRequest.headers(headerName, headerValues); } containerRequest.setWriter(responseWriter); try { applicationHandler.handle(containerRequest); } finally { responseWriter.releaseConnection(); } }
@Override public void service(final Request request, final Response response) { final ResponseWriter responseWriter = new ResponseWriter(response, configSetStatusOverSendError); try { logger.debugLog("GrizzlyHttpContainer.service(...) started"); URI baseUri = getBaseUri(request); URI requestUri = getRequestUri(request); final ContainerRequest requestContext = new ContainerRequest(baseUri, requestUri, request.getMethod().getMethodString(), getSecurityContext(request), new GrizzlyRequestPropertiesDelegate(request)); requestContext.setEntityStream(request.getInputStream()); for (final String headerName : request.getHeaderNames()) { requestContext.headers(headerName, request.getHeaders(headerName)); } requestContext.setWriter(responseWriter); requestContext.setRequestScopedInitializer(injectionManager -> { injectionManager.<Ref<Request>>getInstance(RequestTYPE).set(request); injectionManager.<Ref<Response>>getInstance(ResponseTYPE).set(response); }); appHandler.handle(requestContext); } finally { logger.debugLog("GrizzlyHttpContainer.service(...) finished"); } }