/** * Retrieve the value from the REST request body. * * TODO: REST-Server value cannot be null ( null/empty string ?) */ private void parseValue() { ChannelBuffer content = this.request.getContent(); this.parsedValue = new byte[content.capacity()]; content.readBytes(parsedValue); } }
/** * * @param factory the factory used to create InterfaceHttpData * @param request the request to decode * @param charset the charset to use as default * @throws NullPointerException for request or charset or factory * @throws ErrorDataDecoderException if the default charset was wrong when decoding or other errors */ public HttpPostStandardRequestDecoder(HttpDataFactory factory, HttpRequest request, Charset charset) throws ErrorDataDecoderException { if (factory == null) { throw new NullPointerException("factory"); } if (request == null) { throw new NullPointerException("request"); } if (charset == null) { throw new NullPointerException("charset"); } this.request = request; this.charset = charset; this.factory = factory; if (!this.request.isChunked()) { undecodedChunk = this.request.getContent(); isLastChunk = true; parseBody(); } }
/** * * @param factory the factory used to create InterfaceHttpData * @param request the request to decode * @param charset the charset to use as default * @throws NullPointerException for request or charset or factory * @throws ErrorDataDecoderException if the default charset was wrong when decoding or other errors */ public HttpPostMultipartRequestDecoder(HttpDataFactory factory, HttpRequest request, Charset charset) throws ErrorDataDecoderException { if (factory == null) { throw new NullPointerException("factory"); } if (request == null) { throw new NullPointerException("request"); } if (charset == null) { throw new NullPointerException("charset"); } this.request = request; this.charset = charset; this.factory = factory; // Fill default values setMultipart(this.request.headers().get(HttpHeaders.Names.CONTENT_TYPE)); if (!this.request.isChunked()) { undecodedChunk = this.request.getContent(); isLastChunk = true; parseBody(); } }
} else if(httpMethod.equals(HttpMethod.POST)) { Map<String, Properties> configsToPut = Maps.newHashMap(); ChannelBuffer content = this.request.getContent(); if(content != null) { byte[] postBody = new byte[content.capacity()];
@Override public String body() { return httpRequest.getContent().toString(CharsetUtil.UTF_8); // TODO get charset from request }
int a = (int) (Long.parseLong(key1.replaceAll("[^0-9]", "")) / key1.replaceAll("[^ ]", "").length()); int b = (int) (Long.parseLong(key2.replaceAll("[^0-9]", "")) / key2.replaceAll("[^ ]", "").length()); long c = req.getContent().readLong(); ChannelBuffer input = ChannelBuffers.buffer(16); input.writeInt(a);
@Override public byte[] bodyAsBytes() { ChannelBuffer buffer = httpRequest.getContent(); byte[] body = new byte[buffer.readableBytes()]; buffer.getBytes(buffer.readerIndex(), body); return body; }
@Override public void prepareHandshakeResponse(NettyWebSocketConnection webSocketConnection) { webSocketConnection.setVersion("HIXIE-76"); res.setStatus(new HttpResponseStatus(101, "Web Socket Protocol Handshake")); res.addHeader(UPGRADE, WEBSOCKET); res.addHeader(CONNECTION, UPGRADE); res.addHeader(SEC_WEBSOCKET_ORIGIN, req.getHeader(ORIGIN)); res.addHeader(SEC_WEBSOCKET_LOCATION, getWebSocketLocation(req)); String protocol = req.getHeader(SEC_WEBSOCKET_PROTOCOL); if (protocol != null) { res.addHeader(SEC_WEBSOCKET_PROTOCOL, protocol); } // Calculate the answer of the challenge. String key1 = req.getHeader(SEC_WEBSOCKET_KEY1); String key2 = req.getHeader(SEC_WEBSOCKET_KEY2); int a = (int) (Long.parseLong(key1.replaceAll("[^0-9]", "")) / key1.replaceAll("[^ ]", "").length()); int b = (int) (Long.parseLong(key2.replaceAll("[^0-9]", "")) / key2.replaceAll("[^ ]", "").length()); long c = req.getContent().readLong(); ChannelBuffer input = ChannelBuffers.buffer(16); input.writeInt(a); input.writeInt(b); input.writeLong(c); ChannelBuffer output = ChannelBuffers.wrappedBuffer(MD5.digest(input.array())); res.setContent(output); }
public RevokeTokenRequest(HttpRequest request) { String content = request.getContent().toString(CharsetUtil.UTF_8); JsonParser parser = new JsonParser(); try { JsonObject jsonObj= parser.parse(content).getAsJsonObject(); this.accessToken = (jsonObj.get(ACCESS_TOKEN) != null) ? jsonObj.get(ACCESS_TOKEN).getAsString() : null; this.clientId = (jsonObj.get(CLIENT_ID) != null) ? jsonObj.get(CLIENT_ID).getAsString() : null; } catch (JsonSyntaxException e) { // do nothing } }
@Override protected Object decode(ChannelHandlerContext ctx, Channel channel, Object msg) throws Exception { if (!(msg instanceof org.jboss.netty.handler.codec.http.HttpRequest)) { return msg; } org.jboss.netty.handler.codec.http.HttpRequest request = (org.jboss.netty.handler.codec.http.HttpRequest) msg; boolean keepAlive = org.jboss.netty.handler.codec.http.HttpHeaders.isKeepAlive(request) & isKeepAlive; NettyHttpResponse response = new NettyHttpResponse(channel, keepAlive, request.getMethod()); ResteasyHttpHeaders headers = null; ResteasyUriInfo uriInfo = null; try { headers = NettyUtil.extractHttpHeaders(request); uriInfo = NettyUtil.extractUriInfo(request, servletMappingPrefix, proto); HttpRequest nettyRequest = new NettyHttpRequest(headers, uriInfo, request.getMethod().getName(), dispatcher, response, org.jboss.netty.handler.codec.http.HttpHeaders.is100ContinueExpected(request) ); ChannelBufferInputStream is = new ChannelBufferInputStream(request.getContent()); nettyRequest.setInputStream(is); return nettyRequest; } catch (Exception e) { response.sendError(400); // made it warn so that people can filter this. LogMessages.LOGGER.warn(Messages.MESSAGES.failedToParseRequest(), e); return null; } }
public RevokeUserTokensRequest(HttpRequest request) { String content = request.getContent().toString(CharsetUtil.UTF_8); JsonParser parser = new JsonParser(); try { JsonObject jsonObj= parser.parse(content).getAsJsonObject(); this.userId = (jsonObj.get(USER_ID) != null) ? jsonObj.get(USER_ID).getAsString() : null; } catch (JsonSyntaxException e) { // do nothing } }
@Override public String body() { return httpRequest.getContent().toString(CharsetUtil.UTF_8); // TODO get charset from request }
@PUT @Path("/{tenant-id}") public void writeTenant(HttpRequest request, HttpResponder responder, @PathParam("tenant-id") String tenantId) { LOG.debug("Received request to put tenant {}", tenantId); Reader reader = new InputStreamReader(new ChannelBufferInputStream(request.getContent()), Charsets.UTF_8); JsonObject body = gson.fromJson(reader, JsonObject.class); LOG.debug("Request body = {}", body); Integer numWorkers = body.get("workers").getAsInt(); if (numWorkers != provisionerTenantStore.getAssignedWorkers(tenantId)) { provisionerTenantStore.setAssignedWorkers(tenantId, numWorkers); } responder.sendStatus(HttpResponseStatus.OK); }
private ChannelBuffer createHixieHandshakeContent(HttpRequest request) throws NoSuchAlgorithmException { String key1 = request.getHeader(HttpHeaders.Names.SEC_WEBSOCKET_KEY1); String key2 = request.getHeader(HttpHeaders.Names.SEC_WEBSOCKET_KEY2); int keyA = (int) (Long.parseLong(key1.replaceAll("[^0-9]", "")) / key1.replaceAll("[^ ]", "").length()); int keyB = (int) (Long.parseLong(key2.replaceAll("[^0-9]", "")) / key2.replaceAll("[^ ]", "").length()); long keyC = request.getContent().readLong(); ChannelBuffer responseBuffer = ChannelBuffers.buffer(HIXIE_BUFFER_SIZE); responseBuffer.writeInt(keyA); responseBuffer.writeInt(keyB); responseBuffer.writeLong(keyC); return ChannelBuffers.wrappedBuffer(MessageDigest.getInstance("MD5").digest(responseBuffer.array())); }
public NettyHttpRequest(org.jboss.netty.handler.codec.http.HttpRequest request) { this.request = request; this.params = newHashMap(); this.content = request.getContent().readable() ? new ChannelBufferBytesReference(request.getContent()) : BytesArray.EMPTY; this.uri = request.getUri(); int pathEndPos = uri.indexOf('?'); if (pathEndPos < 0) { this.rawPath = uri; } else { this.rawPath = uri.substring(0, pathEndPos); RestUtils.decodeQueryString(uri, pathEndPos + 1, params); } }
public Netty3HttpRequest(NamedXContentRegistry xContentRegistry, HttpRequest request, Channel channel) { super(xContentRegistry, request.getUri(), new HttpHeadersMap(request.headers())); this.request = request; this.channel = channel; if (request.getContent().readable()) { this.content = Netty3Utils.toBytesReference(request.getContent()); } else { this.content = BytesArray.EMPTY; } }
@Override public byte[] bodyAsBytes() { ChannelBuffer buffer = httpRequest.getContent(); byte[] body = new byte[buffer.readableBytes()]; buffer.getBytes(buffer.readerIndex(), body); return body; }
@Override public void messageReceived(ChannelHandlerContext context, MessageEvent e) throws Exception { HttpRequest request = (HttpRequest)e.getMessage(); String base = getBaseUri(request); final URI baseUri = new URI(base); final URI requestUri = new URI(base.substring(0, base.length() - 1) + request.getUri()); final ContainerRequest cRequest = new ContainerRequest( application, request.getMethod().getName(), baseUri, requestUri, getHeaders(request), new ChannelBufferInputStream(request.getContent()) ); application.handleRequest(cRequest, new Writer(e.getChannel())); }
@Override public void messageReceived(final ChannelHandlerContext ctx, final MessageEvent e) throws Exception { HttpRequest request = (HttpRequest)e.getMessage(); HttpMethod method = request.getMethod(); // if we are a post then we send upstream, otherwise we are just being prompted for a response. if (method.equals(HttpMethod.POST)) { MessageEvent event = new UpstreamMessageEvent(e.getChannel(), request.getContent(), e.getRemoteAddress()); ctx.sendUpstream(event); } // add a new response responses.put(new ResponseHolder(System.currentTimeMillis() + responseTime, new DefaultHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.OK))); }
@Override public Message toCamelMessage(HttpRequest request, Exchange exchange, NettyHttpConfiguration configuration) throws Exception { LOG.trace("toCamelMessage: {}", request); NettyHttpMessage answer = new NettyHttpMessage(exchange.getContext(), request, null); answer.setExchange(exchange); if (configuration.isMapHeaders()) { populateCamelHeaders(request, answer.getHeaders(), exchange, configuration); } if (configuration.isDisableStreamCache()) { // keep the body as is, and use type converters answer.setBody(request.getContent()); } else { // turn the body into stream cached NettyChannelBufferStreamCache cache = new NettyChannelBufferStreamCache(request.getContent()); answer.setBody(cache); } return answer; }