Java Examples for io.netty.handler.codec.http.QueryStringDecoder
The following java examples will help you to understand the usage of io.netty.handler.codec.http.QueryStringDecoder. These source code samples are taken from different open source projects.
Example 1
Project: mockserver-master File: MockServerRequestDecoder.java View source code |
@Override protected void decode(ChannelHandlerContext ctx, FullHttpRequest fullHttpRequest, List<Object> out) { HttpRequest httpRequest = new HttpRequest(); if (fullHttpRequest != null) { setMethod(httpRequest, fullHttpRequest); QueryStringDecoder queryStringDecoder = new QueryStringDecoder(fullHttpRequest.uri()); setPath(httpRequest, queryStringDecoder); setQueryString(httpRequest, queryStringDecoder); setBody(httpRequest, fullHttpRequest); setHeaders(httpRequest, fullHttpRequest); setCookies(httpRequest, fullHttpRequest); httpRequest.withKeepAlive(isKeepAlive(fullHttpRequest)); httpRequest.withSecure(isSecure); } out.add(httpRequest); }
Example 2
Project: PUMA-master File: BinlogSubscriptionDecoder.java View source code |
@Override
public Object decode(FullHttpRequest request) throws DecoderException {
if (request.getMethod().equals(HttpMethod.POST)) {
String json = request.content().toString(Charset.forName("utf-8"));
return ConvertHelper.fromJson(json, BinlogSubscriptionRequest.class);
}
BinlogSubscriptionRequest binlogSubscriptionRequest = new BinlogSubscriptionRequest();
Map<String, List<String>> params = (new QueryStringDecoder(request.getUri())).parameters();
binlogSubscriptionRequest.setClientName(params.get("clientName").get(0));
binlogSubscriptionRequest.setDatabase(params.get("database").get(0));
if (!params.containsKey("table")) {
throw new DecoderException("must contain `table` in `BinlogSubscriptionRequest`");
} else {
binlogSubscriptionRequest.setTables(params.get("table"));
}
if (!params.containsKey("codec")) {
binlogSubscriptionRequest.setCodec(DEFAULT_CODEC);
} else {
binlogSubscriptionRequest.setCodec(params.get("codec").get(0));
}
if (!params.containsKey("ddl")) {
binlogSubscriptionRequest.setDdl(DEFAULT_DDL);
} else {
binlogSubscriptionRequest.setDdl(Boolean.valueOf(params.get("ddl").get(0)));
}
if (!params.containsKey("dml")) {
binlogSubscriptionRequest.setDml(DEFAULT_DML);
} else {
binlogSubscriptionRequest.setDml(Boolean.valueOf(params.get("dml").get(0)));
}
if (!params.containsKey("transaction")) {
binlogSubscriptionRequest.setTransaction(DEFAULT_TRANSACTION);
} else {
binlogSubscriptionRequest.setTransaction(Boolean.valueOf(params.get("transaction").get(0)));
}
return binlogSubscriptionRequest;
}
Example 3
Project: consulo-master File: SubServer.java View source code |
@Override
protected boolean process(@NotNull ChannelHandlerContext context, @NotNull FullHttpRequest request, @NotNull QueryStringDecoder urlDecoder) {
if (handlers.isEmpty()) {
// not yet initialized, for example, P2PTransport could add handlers after we bound.
return false;
}
return request.method() == HttpMethod.POST && XmlRpcServer.SERVICE.getInstance().process(urlDecoder.path(), request, context, handlers);
}
Example 4
Project: MPS-master File: MPSRequestManager.java View source code |
@Override
public boolean process(@NotNull QueryStringDecoder decoder, @NotNull FullHttpRequest request, @NotNull ChannelHandlerContext context) throws IOException {
HttpRequest boxedRequest;
try {
boxedRequest = new HttpRequest(request, decoder, context.channel());
} catch (URISyntaxException exception) {
return false;
}
for (IHttpRequestHandlerFactory handlerFactory : Sequence.fromIterable(new ExtensionPoint<IHttpRequestHandlerFactory>("jetbrains.mps.ide.httpsupport.HttpRequestHandlerEP").getObjects())) {
IHttpRequestHandler handler = handlerFactory.create(boxedRequest);
if (handler.canHandle()) {
try {
handler.handle();
} catch (Throwable e) {
handleException(e, handlerFactory, boxedRequest);
} finally {
return true;
}
}
}
return false;
}
Example 5
Project: netty-cookbook-master File: HttpEventRoutingHandler.java View source code |
@Override protected void channelRead0(ChannelHandlerContext ctx, Object msg) throws Exception { if (msg instanceof HttpRequest) { HttpRequest request = (HttpRequest) msg; String uri = request.getUri(); QueryStringDecoder decoder = new QueryStringDecoder(uri); String path = decoder.path(); //System.out.println("path "+path); HttpResponse response = findHandler(request, path).handle(request, decoder); ctx.write(response); ctx.flush().close(); } }
Example 6
Project: Sparkngin-master File: JSONMessageRouteHandler.java View source code |
@Override protected void doGet(ChannelHandlerContext ctx, HttpRequest httpReq) { QueryStringDecoder reqDecoder = new QueryStringDecoder(httpReq.getUri()); String data = reqDecoder.parameters().get("data").get(0); Message message = JSONSerializer.INSTANCE.fromString(data, Message.class); Ack ack = sparkngin.push(message); writeJSON(ctx, httpReq, ack); }
Example 7
Project: vnluser-master File: NettyHttpUtil.java View source code |
/** * quick log data for error (video tracking) * * @param ipAddress * @param request * @param uri */ public static void logErrorData(String ipAddress, HttpRequest request, String uri) { if (StringUtil.isEmpty(uri)) { return; } int idx = uri.indexOf("?"); if (idx < 0) { return; } String queryDetails = uri.substring(idx + 1); if (StringUtil.isEmpty(queryDetails)) { return; } try { QueryStringDecoder queryStringDecoder = new QueryStringDecoder(uri); Map<String, List<String>> params = queryStringDecoder.parameters(); String error = NettyHttpUtil.getParamValue("error", params, ""); if (!StringUtil.isEmpty(error)) { String userAgent = request.headers().get(USER_AGENT); String cookieString = request.headers().get(COOKIE); long time = System.currentTimeMillis() / 1000L; StringBuilder logLine = new StringBuilder(); char tab = CharPool.TAB; logLine.append(ipAddress).append(tab); logLine.append(time).append(tab); logLine.append(userAgent).append(tab); logLine.append(queryDetails).append(tab); logLine.append(cookieString); logLine.append("\n"); LogUtil.dumpErrorLogData(logLine.toString()); } } catch (Exception e) { } }
Example 8
Project: intellij-community-master File: DiffHttpService.java View source code |
@Override
@Nullable
public String execute(@NotNull QueryStringDecoder urlDecoder, @NotNull FullHttpRequest request, @NotNull ChannelHandlerContext context) throws IOException {
final List<DiffContent> contents = new ArrayList<>();
final List<String> titles = new ArrayList<>();
boolean focused = true;
String windowTitle = null;
JsonReader reader = createJsonReader(request);
if (reader.hasNext()) {
String fileType = null;
reader.beginObject();
while (reader.hasNext()) {
String name = reader.nextName();
if (name.equals("fileType")) {
fileType = reader.nextString();
} else if (name.equals("focused")) {
focused = reader.nextBoolean();
} else if (name.equals("windowTitle")) {
windowTitle = StringUtil.nullize(reader.nextString(), true);
} else if (name.equals("contents")) {
String error = readContent(reader, contents, titles, fileType);
if (error != null) {
return error;
}
} else {
reader.skipValue();
}
}
reader.endObject();
}
if (contents.isEmpty()) {
return "Empty request";
}
Project project = getLastFocusedOrOpenedProject();
if (project == null) {
// Argument for @NotNull parameter 'project' of com/intellij/openapi/components/ServiceManager.getService must not be null
project = ProjectManager.getInstance().getDefaultProject();
}
final boolean finalFocused = focused;
final String finalWindowTitle = windowTitle;
final Project finalProject = project;
ApplicationManager.getApplication().invokeLater(() -> {
if (finalFocused) {
ProjectUtil.focusProjectWindow(finalProject, true);
}
DiffManager.getInstance().showDiff(finalProject, new SimpleDiffRequest(StringUtil.notNullize(finalWindowTitle, "Diff Service"), contents, titles));
}, project.getDisposed());
sendOk(request, context);
return null;
}
Example 9
Project: netty-socketio-master File: WebSocketTransport.java View source code |
@Override public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception { if (msg instanceof CloseWebSocketFrame) { ctx.channel().close(); ReferenceCountUtil.release(msg); } else if (msg instanceof BinaryWebSocketFrame || msg instanceof TextWebSocketFrame) { ByteBufHolder frame = (ByteBufHolder) msg; ClientHead client = clientsBox.get(ctx.channel()); if (client == null) { log.debug("Client with was already disconnected. Channel closed!"); ctx.channel().close(); frame.release(); return; } ctx.pipeline().fireChannelRead(new PacketsMessage(client, frame.content(), Transport.WEBSOCKET)); frame.release(); } else if (msg instanceof FullHttpRequest) { FullHttpRequest req = (FullHttpRequest) msg; QueryStringDecoder queryDecoder = new QueryStringDecoder(req.uri()); String path = queryDecoder.path(); List<String> transport = queryDecoder.parameters().get("transport"); List<String> sid = queryDecoder.parameters().get("sid"); if (transport != null && NAME.equals(transport.get(0))) { try { if (!configuration.getTransports().contains(Transport.WEBSOCKET)) { log.debug("{} transport not supported by configuration.", Transport.WEBSOCKET); ctx.channel().close(); return; } if (sid != null && sid.get(0) != null) { final UUID sessionId = UUID.fromString(sid.get(0)); handshake(ctx, sessionId, path, req); } else { ClientHead client = ctx.channel().attr(ClientHead.CLIENT).get(); // first connection handshake(ctx, client.getSessionId(), path, req); } } finally { req.release(); } } else { ctx.fireChannelRead(msg); } } else { ctx.fireChannelRead(msg); } }
Example 10
Project: yamcs-master File: Router.java View source code |
/**
* At this point we do not have the full request (only the header) so we have to configure the pipeline either for receiving the
* full request or with route specific pipeline for receiving (large amounts of) data in case of dataLoad routes.
*
* @param ctx
* @param req
* @param qsDecoder
* @return true if the request has been scheduled and false if the request is invalid or there was another error
*/
public boolean scheduleExecution(ChannelHandlerContext ctx, HttpRequest req, QueryStringDecoder qsDecoder) {
try {
String uri = qsDecoder.path();
RouteMatch match = matchURI(req.method(), uri);
if (match == null) {
log.info("No route matching URI: '{}'", req.uri());
HttpRequestHandler.sendPlainTextError(ctx, req, HttpResponseStatus.NOT_FOUND);
return false;
}
ctx.channel().attr(CTX_ROUTE_MATCH).set(match);
RouteConfig rc = match.getRouteConfig();
if (rc.isDataLoad()) {
try {
RouteHandler target = match.routeConfig.routeHandler;
match.routeConfig.handle.invoke(target, ctx, req, match);
if (HttpUtil.is100ContinueExpected(req)) {
ctx.writeAndFlush(CONTINUE.retainedDuplicate());
}
} catch (HttpException e) {
log.warn("Error invoking data load handler on URI '{}': {}", req.uri(), e.getMessage());
HttpRequestHandler.sendPlainTextError(ctx, req, e.getStatus(), e.getMessage());
} catch (Throwable t) {
log.error("Error invoking data load handler on URI: '{}'", req.uri(), t);
HttpRequestHandler.sendPlainTextError(ctx, req, HttpResponseStatus.BAD_REQUEST);
}
} else {
ctx.pipeline().addLast(new HttpContentCompressor());
ctx.pipeline().addLast(new ChunkedWriteHandler());
//this will cause the channelRead0 to be called as soon as the request is complete
// it will also reject requests whose body is greater than the MAX_BODY_SIZE)
ctx.pipeline().addLast(new HttpObjectAggregator(MAX_BODY_SIZE));
ctx.pipeline().addLast(this);
ctx.fireChannelRead(req);
}
return true;
} catch (MethodNotAllowedException e) {
log.info("Method {} not allowed for URI: '{}'", req.method(), req.uri());
HttpRequestHandler.sendPlainTextError(ctx, req, HttpResponseStatus.BAD_REQUEST);
}
return false;
}
Example 11
Project: DemandSpike-master File: HttpServerSimulator.java View source code |
@Override protected void doGet(ChannelHandlerContext ctx, HttpRequest httpReq) { getCount++; processTime(); QueryStringDecoder reqDecoder = new QueryStringDecoder(httpReq.getUri()); String data = reqDecoder.parameters().get("data").get(0); Payload payload = JSONSerializer.INSTANCE.fromString(data, Payload.class); writeJSON(ctx, httpReq, payload); this.writeContent(ctx, httpReq, "do get", "text/plain"); }
Example 12
Project: hadoop-master File: WebHdfsHandler.java View source code |
@Override public void channelRead0(final ChannelHandlerContext ctx, final HttpRequest req) throws Exception { Preconditions.checkArgument(req.uri().startsWith(WEBHDFS_PREFIX)); QueryStringDecoder queryString = new QueryStringDecoder(req.uri()); params = new ParameterParser(queryString, conf); DataNodeUGIProvider ugiProvider = new DataNodeUGIProvider(params); ugi = ugiProvider.ugi(); path = params.path(); injectToken(); ugi.doAs(new PrivilegedExceptionAction<Void>() { @Override public Void run() throws Exception { handle(ctx, req); return null; } }); }
Example 13
Project: hadoop-release-2.6.0-master File: WebHdfsHandler.java View source code |
@Override public void channelRead0(final ChannelHandlerContext ctx, final HttpRequest req) throws Exception { Preconditions.checkArgument(req.getUri().startsWith(WEBHDFS_PREFIX)); QueryStringDecoder queryString = new QueryStringDecoder(req.getUri()); params = new ParameterParser(queryString, conf); DataNodeUGIProvider ugiProvider = new DataNodeUGIProvider(params); ugi = ugiProvider.ugi(); path = params.path(); injectToken(); ugi.doAs(new PrivilegedExceptionAction<Void>() { @Override public Void run() throws Exception { handle(ctx, req); return null; } }); }
Example 14
Project: socketio-master File: WebSocketHandler.java View source code |
@Override public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception { if (msg instanceof FullHttpRequest) { FullHttpRequest req = (FullHttpRequest) msg; if (req.method() == HttpMethod.GET && req.uri().startsWith(connectPath)) { final QueryStringDecoder queryDecoder = new QueryStringDecoder(req.uri()); final String requestPath = queryDecoder.path(); if (log.isDebugEnabled()) log.debug("Received HTTP {} handshake request: {} from channel: {}", getTransportType().getName(), req, ctx.channel()); try { handshake(ctx, req, requestPath); } catch (Exception e) { log.error("Error during {} handshake : {}", getTransportType().getName(), e); } finally { ReferenceCountUtil.release(msg); } return; } } else if (msg instanceof WebSocketFrame && isCurrentHandlerSession(ctx)) { handleWebSocketFrame(ctx, (WebSocketFrame) msg); return; } ctx.fireChannelRead(msg); }
Example 15
Project: vertx-shell-master File: SockJSTtyConnection.java View source code |
private static Vector getInitialSize(SockJSSocket socket) { QueryStringDecoder decoder = new QueryStringDecoder(socket.uri()); Map<String, List<String>> params = decoder.parameters(); try { int cols = getParamValue(params, "cols", 80); int rows = getParamValue(params, "rows", 24); return new Vector(cols, rows); } catch (Exception e) { return new Vector(80, 24); } }
Example 16
Project: aerogear-simplepush-server-master File: SockJsHandler.java View source code |
@Override
public void messageReceived(final ChannelHandlerContext ctx, final FullHttpRequest request) throws Exception {
final String path = new QueryStringDecoder(request.getUri()).path();
for (SockJsServiceFactory factory : factories.values()) {
if (path.startsWith(factory.config().prefix())) {
handleService(factory, request, ctx);
return;
}
}
writeNotFoundResponse(request, ctx);
}
Example 17
Project: casely-master File: LeanerServerHandler.java View source code |
@Override protected void messageReceived(ChannelHandlerContext ctx, FullHttpRequest request) throws Exception { QueryStringDecoder queryDecoder = new QueryStringDecoder(request.getUri()); final String uri = request.getUri(); HttpMethod method = request.getMethod(); // 请求�数 Map<String, String> params = null; // GET if (method == HttpMethod.GET) { Map<String, List<String>> getParams = queryDecoder.parameters(); params = parseParams(getParams); } else // POST if (method == HttpMethod.POST) { ByteBuf content = request.content(); if (content.isReadable()) { String param = content.toString(Charset.forName("UTF-8")); QueryStringDecoder postQueryStringDecoder = new QueryStringDecoder("/?" + param); Map<String, List<String>> postParams = postQueryStringDecoder.parameters(); params = parseParams(postParams); } } final String path = queryDecoder.path(); LOG.info("req, path:" + path + ", method:" + method + ", uri:" + uri); LOG.info("params:" + params.toString()); writeResponse(request, ctx); }
Example 18
Project: divconq-master File: Request.java View source code |
public void load(ChannelHandlerContext ctx, HttpRequest req) { this.method = req.getMethod(); this.headers = req.headers(); String value = req.headers().get(Names.COOKIE); if (StringUtil.isNotEmpty(value)) { Set<Cookie> cset = ServerCookieDecoder.STRICT.decode(value); for (Cookie cookie : cset) this.cookies.put(cookie.name(), cookie); } QueryStringDecoder decoderQuery = new QueryStringDecoder(req.getUri()); // TODO decode this.parameters = decoderQuery.parameters(); this.path = new CommonPath(QueryStringDecoder.decodeComponent(decoderQuery.path())); this.orgpath = this.path; this.orgrequri = QueryStringDecoder.decodeComponent(decoderQuery.uri()); this.contentType = new ContentTypeParser(this.headers.get(Names.CONTENT_TYPE)); if (Logger.isDebug()) { Logger.debug("Request Method " + this.method); for (Entry<String, String> ent : this.headers.entries()) { Logger.debug("Request header: " + ent.getKey() + ": " + ent.getValue()); } } }
Example 19
Project: Holmes-master File: HttpFileRequestDecoder.java View source code |
/** * {@inheritDoc} */ @Override protected void decode(final ChannelHandlerContext context, final FullHttpRequest request, final List<Object> out) { HttpFileRequest fileRequest = null; // only GET requests are handled if (request.getMethod().equals(GET)) { QueryStringDecoder requestDecoder = new QueryStringDecoder(request.getUri()); if (requestDecoder.path().startsWith(HTTP_CONTENT_REQUEST_PATH.toString()) && requestDecoder.parameters().get(HTTP_CONTENT_ID.toString()) != null) { // Content file request is valid if content is found in media index Optional<MediaNode> node = mediaManager.getNode(requestDecoder.parameters().get(HTTP_CONTENT_ID.toString()).get(0)); if (node.isPresent() && node.get() instanceof ContentNode) { // Content found in media index, build a file request based on this content ContentNode contentNode = (ContentNode) node.get(); fileRequest = new HttpFileRequest(request, new File(contentNode.getPath()), contentNode.getMimeType(), false); } } else { // Static file request is valid if requested file name has a valid mime type String requestedFileName = getRequestedFileName(requestDecoder); MimeType mimeType = mimeTypeManager.getMimeType(requestedFileName); if (mimeType != null) { // Found valid mime type, build a static file request fileRequest = new HttpFileRequest(request, new File(uiDirectory, requestedFileName), mimeType, true); } } } if (fileRequest != null) { // Add file request to message list out.add(fileRequest); } else { // Forward request to pipeline out.add(request.retain()); } }
Example 20
Project: http2-netty-master File: Http2RequestHandler.java View source code |
@Override protected void channelRead0(ChannelHandlerContext ctx, FullHttpRequest request) throws Exception { QueryStringDecoder queryString = new QueryStringDecoder(request.uri()); String streamId = streamId(request); // Check arguments: path must match and latency parameter must be present if (!PATH.equals(queryString.path()) || missing(queryString, LATENCY)) { sendDummy(ctx, streamId); return; } int latency = latency(queryString); if (missing(queryString, X) && missing(queryString, Y)) { handlePage(ctx, streamId, latency); } else { handleImage(queryString, ctx, streamId, latency); } }
Example 21
Project: jetstream-master File: HttpRequestHandler.java View source code |
private void debugHeadersAndCookies(HttpRequest request) { StringBuilder headersandaccokies = new StringBuilder(); // echo the header for now for (Map.Entry<String, String> h : request.headers()) { headersandaccokies.append("HEADER: " + h.getKey() + " = " + h.getValue() + "\r\n"); } headersandaccokies.append("\r\n"); QueryStringDecoder queryStringDecoder = new QueryStringDecoder(request.getUri()); Map<String, List<String>> params = queryStringDecoder.parameters(); if (!params.isEmpty()) { for (Entry<String, List<String>> p : params.entrySet()) { String key = p.getKey(); List<String> vals = p.getValue(); for (String val : vals) { headersandaccokies.append("PARAM: " + key + " = " + val + "\r\n"); } } headersandaccokies.append("\r\n"); } debug(headersandaccokies.toString()); }
Example 22
Project: jsonapi-master File: RouteMatcher.java View source code |
FullHttpResponse getResponseForRoute(ChannelHandlerContext ctx, FullHttpRequest request, List<PatternBinding> bindings) { RoutedHttpRequest rreq = new RoutedHttpRequest(ctx, request); for (PatternBinding binding : bindings) { QueryStringDecoder uri = new QueryStringDecoder(request.getUri()); NamedMatcher m = binding.pattern.matcher(uri.path()); if (m.matches()) { Map<String, List<String>> params = new HashMap<String, List<String>>(m.groupCount()); if (binding.paramNames != null) { // Named params for (String param : binding.paramNames) { List<String> l = new ArrayList<String>(); l.add(m.group(param)); params.put(param, l); } } else { // Un-named params for (int i = 0; i < m.groupCount(); i++) { List<String> l = new ArrayList<String>(); l.add(m.group(i + 1)); params.put("param" + i, l); } } uri.parameters().putAll(params); FullHttpResponse res = binding.handler.handle(rreq); return res; } } if (noMatchHandler != null) { return noMatchHandler.handle(rreq); } return new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.NOT_FOUND); }
Example 23
Project: netty-master File: HttpUploadServerHandler.java View source code |
@Override public void channelRead0(ChannelHandlerContext ctx, HttpObject msg) throws Exception { if (msg instanceof HttpRequest) { HttpRequest request = this.request = (HttpRequest) msg; URI uri = new URI(request.uri()); if (!uri.getPath().startsWith("/form")) { // Write Menu writeMenu(ctx); return; } responseContent.setLength(0); responseContent.append("WELCOME TO THE WILD WILD WEB SERVER\r\n"); responseContent.append("===================================\r\n"); responseContent.append("VERSION: " + request.protocolVersion().text() + "\r\n"); responseContent.append("REQUEST_URI: " + request.uri() + "\r\n\r\n"); responseContent.append("\r\n\r\n"); // new getMethod for (Entry<String, String> entry : request.headers()) { responseContent.append("HEADER: " + entry.getKey() + '=' + entry.getValue() + "\r\n"); } responseContent.append("\r\n\r\n"); // new getMethod Set<Cookie> cookies; String value = request.headers().get(HttpHeaderNames.COOKIE); if (value == null) { cookies = Collections.emptySet(); } else { cookies = ServerCookieDecoder.STRICT.decode(value); } for (Cookie cookie : cookies) { responseContent.append("COOKIE: " + cookie + "\r\n"); } responseContent.append("\r\n\r\n"); QueryStringDecoder decoderQuery = new QueryStringDecoder(request.uri()); Map<String, List<String>> uriAttributes = decoderQuery.parameters(); for (Entry<String, List<String>> attr : uriAttributes.entrySet()) { for (String attrVal : attr.getValue()) { responseContent.append("URI: " + attr.getKey() + '=' + attrVal + "\r\n"); } } responseContent.append("\r\n\r\n"); // if GET Method: should not try to create a HttpPostRequestDecoder if (request.method().equals(HttpMethod.GET)) { // GET Method: should not try to create a HttpPostRequestDecoder // So stop here responseContent.append("\r\n\r\nEND OF GET CONTENT\r\n"); // Not now: LastHttpContent will be sent writeResponse(ctx.channel()); return; } try { decoder = new HttpPostRequestDecoder(factory, request); } catch (ErrorDataDecoderException e1) { e1.printStackTrace(); responseContent.append(e1.getMessage()); writeResponse(ctx.channel()); ctx.channel().close(); return; } readingChunks = HttpUtil.isTransferEncodingChunked(request); responseContent.append("Is Chunked: " + readingChunks + "\r\n"); responseContent.append("IsMultipart: " + decoder.isMultipart() + "\r\n"); if (readingChunks) { // Chunk version responseContent.append("Chunks: "); readingChunks = true; } } // if not it handles the form get if (decoder != null) { if (msg instanceof HttpContent) { // New chunk is received HttpContent chunk = (HttpContent) msg; try { decoder.offer(chunk); } catch (ErrorDataDecoderException e1) { e1.printStackTrace(); responseContent.append(e1.getMessage()); writeResponse(ctx.channel()); ctx.channel().close(); return; } responseContent.append('o'); // example of reading chunk by chunk (minimize memory usage due to // Factory) readHttpDataChunkByChunk(); // example of reading only if at the end if (chunk instanceof LastHttpContent) { writeResponse(ctx.channel()); readingChunks = false; reset(); } } } else { writeResponse(ctx.channel()); } }
Example 24
Project: tajo-master File: AdvancedDataRetriever.java View source code |
@Override
public FileChunk[] handle(ChannelHandlerContext ctx, HttpRequest request) throws IOException {
final Map<String, List<String>> params = new QueryStringDecoder(request.getUri()).parameters();
if (!params.containsKey("qid")) {
throw new FileNotFoundException("No such qid: " + params.containsKey("qid"));
}
if (params.containsKey("sid")) {
List<FileChunk> chunks = Lists.newArrayList();
List<String> taskIds = splitMaps(params.get("qid"));
for (String eachTaskId : taskIds) {
String[] taskIdSeqTokens = eachTaskId.split("_");
ExecutionBlockId ebId = TajoIdUtils.createExecutionBlockId(params.get("sid").get(0));
TaskId quid = new TaskId(ebId, Integer.parseInt(taskIdSeqTokens[0]));
TaskAttemptId attemptId = new TaskAttemptId(quid, Integer.parseInt(taskIdSeqTokens[1]));
RetrieverHandler handler = handlerMap.get(attemptId.toString());
FileChunk chunk = handler.get(params);
chunks.add(chunk);
}
return chunks.toArray(new FileChunk[chunks.size()]);
} else {
RetrieverHandler handler = handlerMap.get(params.get("qid").get(0));
FileChunk chunk = handler.get(params);
if (chunk == null) {
if (params.containsKey("qid")) {
// if there is no content corresponding to the query
return null;
} else {
// if there is no
throw new FileNotFoundException("No such a file corresponding to " + params.get("qid"));
}
}
File file = chunk.getFile();
if (file.isHidden() || !file.exists()) {
throw new FileNotFoundException("No such file: " + file.getAbsolutePath());
}
if (!file.isFile()) {
throw new FileAccessForbiddenException(file.getAbsolutePath() + " is not file");
}
return new FileChunk[] { chunk };
}
}
Example 25
Project: weixin4j-master File: WeixinMessageDecoder.java View source code |
@Override protected void decode(ChannelHandlerContext ctx, FullHttpRequest req, List<Object> out) throws WeixinException { String messageContent = req.content().toString(ServerToolkits.UTF_8); QueryStringDecoder queryDecoder = new QueryStringDecoder(req.uri(), true); HttpMethod method = req.method(); logger.info("decode request:{} use {} method invoking", req.uri(), method); Map<String, List<String>> parameters = queryDecoder.parameters(); EncryptType encryptType = parameters.containsKey("encrypt_type") ? EncryptType.valueOf(parameters.get("encrypt_type").get(0).toUpperCase()) : EncryptType.RAW; String echoStr = parameters.containsKey("echostr") ? parameters.get("echostr").get(0) : ""; String timeStamp = parameters.containsKey("timestamp") ? parameters.get("timestamp").get(0) : ""; String nonce = parameters.containsKey("nonce") ? parameters.get("nonce").get(0) : ""; String signature = parameters.containsKey("signature") ? parameters.get("signature").get(0) : ""; String msgSignature = parameters.containsKey("msg_signature") ? parameters.get("msg_signature").get(0) : ""; String weixinId = parameters.containsKey("weixin_id") ? parameters.get("weixin_id").get(0) : ""; AesToken aesToken = aesTokenMap.get(weixinId); String encryptContent = null; if (!ServerToolkits.isBlank(messageContent) && encryptType == EncryptType.AES) { if (ServerToolkits.isBlank(aesToken.getAesKey())) { throw new WeixinException("EncodingAESKey not be empty in safety(AES) mode"); } EncryptMessageHandler encryptHandler = EncryptMessageHandler.parser(messageContent); encryptContent = encryptHandler.getEncryptContent(); /** * �业�第三方套件 ╮(╯_╰)╠*/ if (aesToken.getWeixinId().startsWith("tj")) { aesToken = new AesToken(encryptHandler.getToUserName(), aesToken.getToken(), aesToken.getAesKey()); } messageContent = MessageUtil.aesDecrypt(aesToken.getWeixinId(), aesToken.getAesKey(), encryptContent); } logger.info("read original message {}", messageContent); WeixinRequest request = new WeixinRequest(req.headers(), method, req.uri(), encryptType, echoStr, timeStamp, nonce, signature, msgSignature, messageContent, encryptContent, aesToken); request.setDecoderResult(req.decoderResult()); request.setProtocolVersion(req.protocolVersion()); out.add(request); }
Example 26
Project: acteur-master File: EventImpl.java View source code |
@Override public synchronized Map<String, String> getParametersAsMap() { if (paramsMap == null) { QueryStringDecoder queryStringDecoder = new QueryStringDecoder(req.getUri()); Map<String, List<String>> params = queryStringDecoder.parameters(); Map<String, String> result = new HashMap<>(); for (Map.Entry<String, List<String>> e : params.entrySet()) { if (e.getValue().isEmpty()) { continue; } result.put(e.getKey(), e.getValue().get(0)); } paramsMap = ImmutableSortedMap.copyOf(result); } return paramsMap; }
Example 27
Project: Blaubot-master File: WebsocketServerHandler.java View source code |
private void handleHttpRequest(ChannelHandlerContext ctx, FullHttpRequest req) { // Handle a bad request. if (!req.getDecoderResult().isSuccess()) { sendHttpResponse(ctx, req, new DefaultFullHttpResponse(HTTP_1_1, BAD_REQUEST)); return; } // Allow only GET methods. if (req.getMethod() != GET) { sendHttpResponse(ctx, req, new DefaultFullHttpResponse(HTTP_1_1, FORBIDDEN)); return; } // Handshake WebSocketServerHandshakerFactory wsFactory = new WebSocketServerHandshakerFactory(getWebSocketLocation(req), null, true, BlaubotWebsocketAdapter.MAX_WEBSOCKET_FRAME_SIZE); handshaker = wsFactory.newHandshaker(req); if (handshaker == null) { WebSocketServerHandshakerFactory.sendUnsupportedVersionResponse(ctx.channel()); } else { // extract uniqueDeviceId from query parameters final String requestUri = req.getUri(); final QueryStringDecoder qstringDecoder = new QueryStringDecoder(requestUri); final List<String> uniqueDeviceIdParam = qstringDecoder.parameters().get(BlaubotWebsocketAdapter.URI_PARAM_UNIQUEDEVICEID); if (uniqueDeviceIdParam == null || uniqueDeviceIdParam.isEmpty()) { if (Log.logErrorMessages()) { Log.e(LOG_TAG, "UniqueDeviceId not provided while connecting WebSocket"); } // send bad request (missing uniqueDeviceId param) sendHttpResponse(ctx, req, new DefaultFullHttpResponse(HTTP_1_1, BAD_REQUEST)); return; } final String uniqueDeviceId = uniqueDeviceIdParam.get(0); final ChannelFuture handShakeFuture = handshaker.handshake(ctx.channel(), req); handShakeFuture.addListener(new ChannelFutureListener() { @Override public void operationComplete(ChannelFuture future) throws Exception { Channel channel = future.channel(); BlaubotDevice remoteDevice = new BlaubotDevice(uniqueDeviceId); BlaubotWebsocketConnection blaubotWebsocketConnection = new BlaubotWebsocketConnection(remoteDevice, channel); blaubotConnectionsMap.put(channel, blaubotWebsocketConnection); incomingConnectionListener.get().onConnectionEstablished(blaubotWebsocketConnection); } }); } }
Example 28
Project: comsat-master File: NettyHttpRequest.java View source code |
@Override public final Multimap<String, String> getParameters() { QueryStringDecoder queryStringDecoder; if (params == null) { queryStringDecoder = new QueryStringDecoder(req.getUri()); final ImmutableMultimap.Builder<String, String> builder = ImmutableMultimap.builder(); final Map<String, List<String>> parameters = queryStringDecoder.parameters(); for (final String k : parameters.keySet()) builder.putAll(k, parameters.get(k)); params = builder.build(); } return params; }
Example 29
Project: elasticsearch-master File: Netty4HttpPipeliningHandlerTests.java View source code |
@Override protected void channelRead0(final ChannelHandlerContext ctx, final HttpPipelinedRequest pipelinedRequest) throws Exception { final QueryStringDecoder decoder; if (pipelinedRequest.last() instanceof FullHttpRequest) { final FullHttpRequest fullHttpRequest = (FullHttpRequest) pipelinedRequest.last(); decoder = new QueryStringDecoder(fullHttpRequest.uri()); } else { decoder = new QueryStringDecoder(AggregateUrisAndHeadersHandler.QUEUE_URI.poll()); } final String uri = decoder.path().replace("/", ""); final ByteBuf content = Unpooled.copiedBuffer(uri, StandardCharsets.UTF_8); final DefaultFullHttpResponse httpResponse = new DefaultFullHttpResponse(HTTP_1_1, OK, content); httpResponse.headers().add(CONTENT_LENGTH, content.readableBytes()); final CountDownLatch waitingLatch = new CountDownLatch(1); waitingRequests.put(uri, waitingLatch); final CountDownLatch finishingLatch = new CountDownLatch(1); finishingRequests.put(uri, finishingLatch); executorService.submit(() -> { try { waitingLatch.await(1000, TimeUnit.SECONDS); final ChannelPromise promise = ctx.newPromise(); ctx.write(pipelinedRequest.createHttpResponse(httpResponse, promise), promise); finishingLatch.countDown(); } catch (InterruptedException e) { fail(e.toString()); } }); }
Example 30
Project: flink-master File: HttpRequestHandler.java View source code |
@Override
public void channelRead0(ChannelHandlerContext ctx, HttpObject msg) {
try {
if (msg instanceof HttpRequest) {
currentRequest = (HttpRequest) msg;
currentRequestPath = null;
if (currentDecoder != null) {
currentDecoder.destroy();
currentDecoder = null;
}
if (currentRequest.getMethod() == HttpMethod.GET || currentRequest.getMethod() == HttpMethod.DELETE) {
// directly delegate to the router
ctx.fireChannelRead(currentRequest);
} else if (currentRequest.getMethod() == HttpMethod.POST) {
// POST comes in multiple objects. First the request, then the contents
// keep the request and path for the remaining objects of the POST request
currentRequestPath = new QueryStringDecoder(currentRequest.getUri(), ENCODING).path();
currentDecoder = new HttpPostRequestDecoder(DATA_FACTORY, currentRequest, ENCODING);
} else {
throw new IOException("Unsupported HTTP method: " + currentRequest.getMethod().name());
}
} else if (currentDecoder != null && msg instanceof HttpContent) {
// received new chunk, give it to the current decoder
HttpContent chunk = (HttpContent) msg;
currentDecoder.offer(chunk);
try {
while (currentDecoder.hasNext()) {
InterfaceHttpData data = currentDecoder.next();
if (data.getHttpDataType() == HttpDataType.FileUpload) {
DiskFileUpload file = (DiskFileUpload) data;
if (file.isCompleted()) {
String name = file.getFilename();
File target = new File(tmpDir, UUID.randomUUID() + "_" + name);
file.renameTo(target);
QueryStringEncoder encoder = new QueryStringEncoder(currentRequestPath);
encoder.addParam("filepath", target.getAbsolutePath());
encoder.addParam("filename", name);
currentRequest.setUri(encoder.toString());
}
}
data.release();
}
} catch (EndOfDataDecoderException ignored) {
}
if (chunk instanceof LastHttpContent) {
HttpRequest request = currentRequest;
currentRequest = null;
currentRequestPath = null;
currentDecoder.destroy();
currentDecoder = null;
// fire next channel handler
ctx.fireChannelRead(request);
}
}
} catch (Throwable t) {
currentRequest = null;
currentRequestPath = null;
if (currentDecoder != null) {
currentDecoder.destroy();
currentDecoder = null;
}
if (ctx.channel().isActive()) {
byte[] bytes = ExceptionUtils.stringifyException(t).getBytes(ENCODING);
DefaultFullHttpResponse response = new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.INTERNAL_SERVER_ERROR, Unpooled.wrappedBuffer(bytes));
response.headers().set(HttpHeaders.Names.CONTENT_TYPE, "text/plain");
response.headers().set(HttpHeaders.Names.CONTENT_LENGTH, response.content().readableBytes());
ctx.writeAndFlush(response);
}
}
}
Example 31
Project: glowroot-master File: BasicSmokeIT.java View source code |
@Test
public void shouldCheckActiveTraceModalPages() throws Exception {
App app = app();
GlobalNavbar globalNavbar = globalNavbar();
JvmSidebar jvmSidebar = new JvmSidebar(driver);
app.open();
globalNavbar.getJvmLink().click();
jvmSidebar.getThreadDumpLink().click();
WebElement viewTraceLink = Utils.withWait(driver, By.linkText("view trace"));
String href = viewTraceLink.getAttribute("href");
String traceId = new QueryStringDecoder(href).parameters().get("modal-trace-id").get(0);
viewTraceLink.click();
clickAroundInTraceModal(traceId, true);
}
Example 32
Project: JNetty-master File: HttpServletRequestImpl.java View source code |
/* ------------------------------------------------------------ */ /** * Extract Parameters from query string and form HttpServletRequestImpl Body(application/x-www-form-urlencoded [POST * | PUT]) */ public void extractParameters() { if (_paramsExtracted) return; _paramsExtracted = true; if (_parameters == null) _parameters = new HashMap<String, List<String>>(); if (_queryEncoding == null) { QueryStringDecoder queryStringDecoder = new QueryStringDecoder(request.getUri()); _parameters.putAll(queryStringDecoder.parameters()); } else { try { QueryStringDecoder queryStringDecoder = new QueryStringDecoder(request.getUri(), Charset.forName(_queryEncoding)); _parameters.putAll(queryStringDecoder.parameters()); } catch (UnsupportedCharsetException e) { if (LOG.isDebugEnabled()) LOG.warn(e); else LOG.warn(e.toString()); } } // handle form _content (application/x-www-form-urlencoded) String encoding = getCharacterEncoding(); String content_type = getContentType(); if (content_type != null && content_type.length() > 0) { content_type = ContentTypeUtil.getContentTypeWithoutCharset(content_type); // application/x-www-form-urlencoded( POST or PUT ) if (HttpHeaders.Values.APPLICATION_X_WWW_FORM_URLENCODED.equals(content_type) && (HttpMethod.POST.name().equals(getMethod()) || HttpMethod.PUT.name().equals(getMethod()))) { int content_length = getContentLength(); if (content_length > 0) { try { Charset bodyCharset = Charset.forName(encoding); String bodyContent = new String(getRowBodyContent(), bodyCharset); // Add form params to query params QueryStringDecoder queryStringDecoder = new QueryStringDecoder(bodyContent, bodyCharset, false); if (_parameters == null) _parameters = queryStringDecoder.parameters(); else //merge { Map<String, List<String>> map = queryStringDecoder.parameters(); for (Entry<String, List<String>> e : map.entrySet()) { if (!_parameters.containsKey(e.getKey())) { _parameters.put(e.getKey(), e.getValue()); } else // parameter with the same name exist,merge { List<String> value = _parameters.get(e.getKey()); if (value == null) _parameters.put(e.getKey(), e.getValue()); else { // merge value.addAll(e.getValue()); _parameters.put(e.getKey(), value); } } } } } catch (Exception e) { if (LOG.isDebugEnabled()) e.printStackTrace(); else LOG.warn(e.toString()); } } } } }
Example 33
Project: kinetic-java-master File: HttpMessageServiceHandler.java View source code |
@Override protected void channelRead0(ChannelHandlerContext ctx, Object msg) throws Exception { int contentLength = 0; if (msg instanceof HttpRequest) { HttpRequest request = (HttpRequest) msg; logger.finest("protocol version: " + request.getProtocolVersion()); logger.finest("host: " + getHost(request, "unknown")); logger.finest("REQUEST_URI: " + request.getUri()); List<Map.Entry<String, String>> headers = request.headers().entries(); String lenstr = request.headers().get(HttpHeaders.Names.CONTENT_LENGTH); contentLength = Integer.parseInt(lenstr); logger.finest("content length=" + contentLength); if (!headers.isEmpty()) { for (Map.Entry<String, String> h : request.headers().entries()) { String key = h.getKey(); String value = h.getValue(); logger.finest("HEADER: " + key + " = " + value); } } QueryStringDecoder queryStringDecoder = new QueryStringDecoder(request.getUri()); Map<String, List<String>> params = queryStringDecoder.parameters(); if (!params.isEmpty()) { for (Entry<String, List<String>> p : params.entrySet()) { String key = p.getKey(); List<String> vals = p.getValue(); for (String val : vals) { logger.finest("PARAM: " + key + " = " + val); } } } } // create extended builder ExtendedMessage.Builder extendedMessage = ExtendedMessage.newBuilder(); if (msg instanceof HttpContent) { HttpContent httpContent = (HttpContent) msg; ByteBuf content = httpContent.content(); if (content.isReadable()) { byte[] body = new byte[contentLength]; content.getBytes(0, body); // read from serialized bytes extendedMessage.mergeFrom(body); } // build message ExtendedMessage extended = extendedMessage.build(); if (logger.isLoggable(Level.FINEST)) { logger.finest("received request: " + extended); } // create kinetic message for processing KineticMessage km = new KineticMessage(); // set interface message km.setMessage(extended.getInterfaceMessage()); // get command bytes ByteString commandBytes = extendedMessage.getInterfaceMessage().getCommandBytes(); // build command Command.Builder commandBuilder = Command.newBuilder(); try { commandBuilder.mergeFrom(commandBytes); km.setCommand(commandBuilder.build()); } catch (InvalidProtocolBufferException e) { logger.log(Level.WARNING, e.getMessage(), e); } // set value if (extended.hasValue()) { km.setValue(extended.getValue().toByteArray()); } // process request KineticMessage kmresp = this.lcservice.processRequest(km); // construct response message ExtendedMessage.Builder extendedResponse = ExtendedMessage.newBuilder(); // set interface message extendedResponse.setInterfaceMessage((Message.Builder) kmresp.getMessage()); // set value if (kmresp.getValue() != null) { extendedResponse.setValue(ByteString.copyFrom(kmresp.getValue())); } // get serialized value ByteBuf data = Unpooled.copiedBuffer(extendedResponse.build().toByteArray()); FullHttpResponse httpResponse = new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.OK, data); httpResponse.headers().set(CONTENT_TYPE, "application/octet-stream"); httpResponse.headers().set(HttpHeaders.Names.CONTENT_ENCODING, HttpHeaders.Values.BINARY); httpResponse.headers().set(CONTENT_LENGTH, httpResponse.content().readableBytes()); httpResponse.headers().set(CONNECTION, HttpHeaders.Values.KEEP_ALIVE); // send response message ctx.writeAndFlush(httpResponse); if (logger.isLoggable(Level.FINEST)) { logger.finest("wrote and flushed response: " + kmresp); } } }
Example 34
Project: moco-master File: DefaultHttpRequest.java View source code |
public static HttpRequest newRequest(final FullHttpRequest request) { QueryStringDecoder decoder = new QueryStringDecoder(request.uri()); ImmutableMap<String, String[]> queries = toQueries(decoder); return builder().withVersion(HttpProtocolVersion.versionOf(request.protocolVersion().text())).withHeaders(collectHeaders(request.headers())).withMethod(HttpMethod.valueOf(request.method().toString().toUpperCase())).withUri(decoder.path()).withQueries(queries).withContent(toMessageContent(request)).build(); }
Example 35
Project: netty.book.kor-master File: HttpSnoopServerHandler.java View source code |
@Override protected void channelRead0(ChannelHandlerContext ctx, Object msg) { if (msg instanceof HttpRequest) { HttpRequest request = this.request = (HttpRequest) msg; if (HttpHeaders.is100ContinueExpected(request)) { send100Continue(ctx); } buf.setLength(0); buf.append("WELCOME TO THE WILD WILD WEB SERVER\r\n"); buf.append("===================================\r\n"); buf.append("VERSION: ").append(request.protocolVersion()).append("\r\n"); buf.append("HOSTNAME: ").append(HttpHeaders.getHost(request, "unknown")).append("\r\n"); buf.append("REQUEST_URI: ").append(request.uri()).append("\r\n\r\n"); HttpHeaders headers = request.headers(); if (!headers.isEmpty()) { for (Map.Entry<String, String> h : headers) { String key = h.getKey(); String value = h.getValue(); buf.append("HEADER: ").append(key).append(" = ").append(value).append("\r\n"); } buf.append("\r\n"); } QueryStringDecoder queryStringDecoder = new QueryStringDecoder(request.uri()); Map<String, List<String>> params = queryStringDecoder.parameters(); if (!params.isEmpty()) { for (Entry<String, List<String>> p : params.entrySet()) { String key = p.getKey(); List<String> vals = p.getValue(); for (String val : vals) { buf.append("PARAM: ").append(key).append(" = ").append(val).append("\r\n"); } } buf.append("\r\n"); } appendDecoderResult(buf, request); } if (msg instanceof HttpContent) { HttpContent httpContent = (HttpContent) msg; ByteBuf content = httpContent.content(); if (content.isReadable()) { buf.append("CONTENT: "); buf.append(content.toString(CharsetUtil.UTF_8)); buf.append("\r\n"); appendDecoderResult(buf, request); } if (msg instanceof LastHttpContent) { buf.append("END OF CONTENT\r\n"); LastHttpContent trailer = (LastHttpContent) msg; if (!trailer.trailingHeaders().isEmpty()) { buf.append("\r\n"); for (String name : trailer.trailingHeaders().names()) { for (String value : trailer.trailingHeaders().getAll(name)) { buf.append("TRAILING HEADER: "); buf.append(name).append(" = ").append(value).append("\r\n"); } } buf.append("\r\n"); } if (!writeResponse(trailer, ctx)) { // If keep-alive is off, close the connection once the content is fully written. ctx.writeAndFlush(Unpooled.EMPTY_BUFFER).addListener(ChannelFutureListener.CLOSE); } } } }
Example 36
Project: netty4.0.27Learn-master File: HttpUploadServerHandler.java View source code |
@Override public void channelRead0(ChannelHandlerContext ctx, HttpObject msg) throws Exception { if (msg instanceof HttpRequest) { HttpRequest request = this.request = (HttpRequest) msg; URI uri = new URI(request.getUri()); if (!uri.getPath().startsWith("/form")) { // Write Menu writeMenu(ctx); return; } responseContent.setLength(0); responseContent.append("WELCOME TO THE WILD WILD WEB SERVER\r\n"); responseContent.append("===================================\r\n"); responseContent.append("VERSION: " + request.getProtocolVersion().text() + "\r\n"); responseContent.append("REQUEST_URI: " + request.getUri() + "\r\n\r\n"); responseContent.append("\r\n\r\n"); // new getMethod for (Entry<String, String> entry : request.headers()) { responseContent.append("HEADER: " + entry.getKey() + '=' + entry.getValue() + "\r\n"); } responseContent.append("\r\n\r\n"); // new getMethod Set<Cookie> cookies; String value = request.headers().get(COOKIE); if (value == null) { cookies = Collections.emptySet(); } else { cookies = CookieDecoder.decode(value); } for (Cookie cookie : cookies) { responseContent.append("COOKIE: " + cookie + "\r\n"); } responseContent.append("\r\n\r\n"); QueryStringDecoder decoderQuery = new QueryStringDecoder(request.getUri()); Map<String, List<String>> uriAttributes = decoderQuery.parameters(); for (Entry<String, List<String>> attr : uriAttributes.entrySet()) { for (String attrVal : attr.getValue()) { responseContent.append("URI: " + attr.getKey() + '=' + attrVal + "\r\n"); } } responseContent.append("\r\n\r\n"); if (request.getMethod().equals(HttpMethod.GET)) { // GET Method: should not try to create a HttpPostRequestDecoder // So stop here responseContent.append("\r\n\r\nEND OF GET CONTENT\r\n"); // Not now: LastHttpContent will be sent writeResponse(ctx.channel()); return; } try { decoder = new HttpPostRequestDecoder(factory, request); } catch (ErrorDataDecoderException e1) { e1.printStackTrace(); responseContent.append(e1.getMessage()); writeResponse(ctx.channel()); ctx.channel().close(); return; } catch (IncompatibleDataDecoderException e1) { responseContent.append(e1.getMessage()); responseContent.append("\r\n\r\nEND OF GET CONTENT\r\n"); writeResponse(ctx.channel()); return; } readingChunks = HttpHeaders.isTransferEncodingChunked(request); responseContent.append("Is Chunked: " + readingChunks + "\r\n"); responseContent.append("IsMultipart: " + decoder.isMultipart() + "\r\n"); if (readingChunks) { // Chunk version responseContent.append("Chunks: "); readingChunks = true; } } // if not it handles the form get if (decoder != null) { if (msg instanceof HttpContent) { // New chunk is received HttpContent chunk = (HttpContent) msg; try { decoder.offer(chunk); } catch (ErrorDataDecoderException e1) { e1.printStackTrace(); responseContent.append(e1.getMessage()); writeResponse(ctx.channel()); ctx.channel().close(); return; } responseContent.append('o'); // example of reading chunk by chunk (minimize memory usage due to // Factory) readHttpDataChunkByChunk(); // example of reading only if at the end if (chunk instanceof LastHttpContent) { writeResponse(ctx.channel()); readingChunks = false; reset(); } } } else { writeResponse(ctx.channel()); } }
Example 37
Project: netty4study-master File: HttpUploadServerHandler.java View source code |
@Override public void channelRead0(ChannelHandlerContext ctx, HttpObject msg) throws Exception { if (msg instanceof HttpRequest) { HttpRequest request = this.request = (HttpRequest) msg; URI uri = new URI(request.getUri()); if (!uri.getPath().startsWith("/form")) { // Write Menu writeMenu(ctx); return; } responseContent.setLength(0); responseContent.append("WELCOME TO THE WILD WILD WEB SERVER\r\n"); responseContent.append("===================================\r\n"); responseContent.append("VERSION: " + request.getProtocolVersion().text() + "\r\n"); responseContent.append("REQUEST_URI: " + request.getUri() + "\r\n\r\n"); responseContent.append("\r\n\r\n"); // new getMethod for (Entry<String, String> entry : request.headers()) { responseContent.append("HEADER: " + entry.getKey() + '=' + entry.getValue() + "\r\n"); } responseContent.append("\r\n\r\n"); // new getMethod Set<Cookie> cookies; String value = request.headers().get(COOKIE); if (value == null) { cookies = Collections.emptySet(); } else { cookies = CookieDecoder.decode(value); } for (Cookie cookie : cookies) { responseContent.append("COOKIE: " + cookie.toString() + "\r\n"); } responseContent.append("\r\n\r\n"); QueryStringDecoder decoderQuery = new QueryStringDecoder(request.getUri()); Map<String, List<String>> uriAttributes = decoderQuery.parameters(); for (Entry<String, List<String>> attr : uriAttributes.entrySet()) { for (String attrVal : attr.getValue()) { responseContent.append("URI: " + attr.getKey() + '=' + attrVal + "\r\n"); } } responseContent.append("\r\n\r\n"); // if GET Method: should not try to create a HttpPostRequestDecoder try { decoder = new HttpPostRequestDecoder(factory, request); } catch (ErrorDataDecoderException e1) { e1.printStackTrace(); responseContent.append(e1.getMessage()); writeResponse(ctx.channel()); ctx.channel().close(); return; } catch (IncompatibleDataDecoderException e1) { responseContent.append(e1.getMessage()); responseContent.append("\r\n\r\nEND OF GET CONTENT\r\n"); writeResponse(ctx.channel()); return; } readingChunks = HttpHeaders.isTransferEncodingChunked(request); responseContent.append("Is Chunked: " + readingChunks + "\r\n"); responseContent.append("IsMultipart: " + decoder.isMultipart() + "\r\n"); if (readingChunks) { // Chunk version responseContent.append("Chunks: "); readingChunks = true; } } // if not it handles the form get if (decoder != null) { if (msg instanceof HttpContent) { // New chunk is received HttpContent chunk = (HttpContent) msg; try { decoder.offer(chunk); } catch (ErrorDataDecoderException e1) { e1.printStackTrace(); responseContent.append(e1.getMessage()); writeResponse(ctx.channel()); ctx.channel().close(); return; } responseContent.append('o'); // example of reading chunk by chunk (minimize memory usage due to // Factory) readHttpDataChunkByChunk(); // example of reading only if at the end if (chunk instanceof LastHttpContent) { writeResponse(ctx.channel()); readingChunks = false; reset(); } } } }
Example 38
Project: rakam-master File: ProxyWebService.java View source code |
@Override
public void channelRead0(ChannelHandlerContext ctx, HttpObject msg) throws Exception {
RakamHttpRequest rakamHttpRequest = ctx.channel().attr(CONNECTION_ATTR).get();
Channel channel = rakamHttpRequest.context().channel();
FullHttpResponse resp = (FullHttpResponse) msg;
String contentType = resp.headers().get(HttpHeaders.Names.CONTENT_TYPE);
Charset charset = null;
if (contentType != null) {
Iterable<String> split = Splitter.on(";").trimResults().split(contentType);
for (String item : split) {
List<String> charsetStr = new QueryStringDecoder("?" + item).parameters().get("charset");
if (charsetStr != null) {
charset = Charset.forName(charsetStr.get(0));
break;
}
}
}
if (charset == null) {
charset = CharsetUtil.UTF_8;
}
String content = resp.content().toString(charset);
Document parse = Jsoup.parse(content, "", Parser.htmlParser());
String url = rakamHttpRequest.params().get("u").get(0);
parse.head().prepend(String.format("<base href='%s'>", url));
parse.head().prepend("<link href=\"/static/components/codemirror/lib/codemirror.css\" media=\"screen\" rel=\"stylesheet\" />");
parse.head().prepend("<link href=\"/static/embed/jquery-ui-theme.css\" media=\"screen\" rel=\"stylesheet\" />");
parse.head().prepend("<link href=\"/static/components/bootstrap-colorpicker/css/colorpicker.css\" media=\"screen\" rel=\"stylesheet\" />");
parse.head().prepend("<link href=\"/static/embed/rakam-inline-editor.css\" media=\"screen\" rel=\"stylesheet\" />");
parse.head().prepend("<script src=\"/static/embed/rakam-inline-editor.js\"></script>");
parse.head().prepend("<script src=\"/static/components/bootstrap-colorpicker/js/bootstrap-colorpicker.js\"></script>");
parse.head().prepend("<script src=\"/static/components/codemirror/mode/xml/xml.js\"></script>");
parse.head().prepend("<script src=\"/static/components/codemirror/mode/javascript/javascript.js\"></script>");
parse.head().prepend("<script src=\"/static/components/codemirror/mode/css/css.js\"></script>");
parse.head().prepend("<script src=\"/static/components/codemirror/mode/vbscript/vbscript.js\"></script>");
parse.head().prepend("<script src=\"/static/components/codemirror/mode/htmlmixed/htmlmixed.js\"></script>");
parse.head().prepend("<script src=\"/static/components/codemirror/lib/codemirror.js\"></script>");
parse.head().prepend("<script src=\"/static/components/jquery-ui/jquery-ui.min.js\"></script>");
parse.head().prepend("<script src=\"/static/components/jquery/dist/jquery.min.js\"></script>");
byte[] bytes = parse.outerHtml().getBytes(charset);
DefaultFullHttpResponse copy = new DefaultFullHttpResponse(resp.getProtocolVersion(), resp.getStatus(), Unpooled.wrappedBuffer(bytes));
copy.headers().set(resp.headers());
copy.trailingHeaders().set(resp.trailingHeaders());
copy.headers().set(HttpHeaders.Names.CONTENT_LENGTH, bytes.length);
String location = resp.headers().get(HttpHeaders.Names.LOCATION);
copy.headers().set("X-Frame-Options", "ALLOWALL");
if (location != null && (location.startsWith("/") || (resp.getStatus().code() == 301 || resp.getStatus().code() == 302))) {
if (location.startsWith("/")) {
location = url.trim() + location;
}
copy.headers().set(HttpHeaders.Names.LOCATION, CharMatcher.is('/').trimTrailingFrom("/ui/proxy?u=" + location) + '/');
}
channel.writeAndFlush(copy).addListener(ChannelFutureListener.CLOSE);
}
Example 39
Project: vesta-id-generator-master File: VestaRestNettyServerHandler.java View source code |
@Override public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception { if (!(msg instanceof HttpRequest)) return; HttpRequest req = (HttpRequest) msg; if (is100ContinueExpected(req)) { ctx.write(new DefaultFullHttpResponse(HTTP_1_1, CONTINUE)); } URI uri = new URI(req.getUri()); if (log.isDebugEnabled()) log.debug("request uri==" + uri.getPath()); long id = -1; long time = -1; long version = -1; long type = -1; long genmethod = -1; long machine = -1; long seq = -1; QueryStringDecoder decoderQuery = new QueryStringDecoder(req.getUri()); Map<String, List<String>> uriAttributes = decoderQuery.parameters(); for (Entry<String, List<String>> attr : uriAttributes.entrySet()) { for (String attrVal : attr.getValue()) { if (log.isDebugEnabled()) log.debug("Request Parameter: " + attr.getKey() + '=' + attrVal); if (ID.equals(attr.getKey())) { id = Long.parseLong(attrVal); } else if (TIME.equals(attr.getKey())) { time = Long.parseLong(attrVal); } else if (VERSION.equals(attr.getKey())) { version = Long.parseLong(attrVal); } else if (TYPE.equals(attr.getKey())) { type = Long.parseLong(attrVal); } else if (GENMETHOD.equals(attr.getKey())) { genmethod = Long.parseLong(attrVal); } else if (MACHINE.equals(attr.getKey())) { machine = Long.parseLong(attrVal); } else if (SEQ.equals(attr.getKey())) { seq = Long.parseLong(attrVal); } } } StringBuffer sbContent = new StringBuffer(); if (ACTION_GENID.equals(uri.getPath())) { long idl = idService.genId(); if (log.isTraceEnabled()) log.trace("Generated id: " + idl); sbContent.append(idl); } else if (ACTION_EXPID.equals(uri.getPath())) { Id ido = idService.expId(id); if (log.isTraceEnabled()) log.trace("Explained id: " + ido); JSONObject jo = JSONObject.fromObject(ido); sbContent.append(jo); } else if (ACTION_TRANSTIME.equals(uri.getPath())) { Date date = idService.transTime(time); if (log.isTraceEnabled()) log.trace("Time: " + date); sbContent.append(date); } else if (ACTION_MAKEID.equals(uri.getPath())) { long madeId = -1; if (time == -1 || seq == -1) sbContent.append("Both time and seq are required."); else if (version == -1) { if (type == -1) { if (genmethod == -1) { if (machine == -1) { madeId = idService.makeId(time, seq); } else { madeId = idService.makeId(machine, time, seq); } } else { madeId = idService.makeId(genmethod, machine, time, seq); } } else { madeId = idService.makeId(type, genmethod, machine, time, seq); } } else { madeId = idService.makeId(version, type, genmethod, machine, time, seq); } if (log.isTraceEnabled()) log.trace("Id: " + madeId); sbContent.append(madeId); } else { sbContent.append("\r\n"); sbContent.append("Please input right URI:"); sbContent.append("\r\n"); sbContent.append(" Example 1: http://ip:port/genid"); sbContent.append("\r\n"); sbContent.append(" Example 2: http://ip:port/expid?id=?"); sbContent.append("\r\n"); sbContent.append(" Example 3: http://ip:port/transtime?time=?"); sbContent.append("\r\n"); sbContent.append(" Example 4: http://ip:port/makeid?version=?&type=?&genmethod=?&machine=?&time=?&seq=?"); } if (log.isTraceEnabled()) log.trace("Message body: " + sbContent); FullHttpResponse response = new DefaultFullHttpResponse(HTTP_1_1, OK, Unpooled.wrappedBuffer(sbContent.toString().getBytes(Charset.forName("UTF-8")))); response.headers().set(CONTENT_TYPE, "text/plain"); response.headers().set(CONTENT_LENGTH, response.content().readableBytes()); boolean keepAlive = isKeepAlive(req); if (log.isTraceEnabled()) log.trace("Keep Alive: " + keepAlive); if (!keepAlive) { ctx.write(response).addListener(ChannelFutureListener.CLOSE); } else { response.headers().set(CONNECTION, Values.KEEP_ALIVE); ctx.write(response); } }
Example 40
Project: armeria-master File: ArmeriaCallFactoryTest.java View source code |
@Override
protected void doGet(ServiceRequestContext ctx, HttpRequest req, HttpResponseWriter res) throws Exception {
req.aggregate().handle(voidFunction(( aReq, cause) -> {
Map<String, List<String>> params = new QueryStringDecoder(aReq.path()).parameters();
res.respond(HttpStatus.OK, MediaType.JSON_UTF_8, "{\"name\":\"" + params.get("name").get(0) + "\", " + "\"age\":" + params.get("age").get(0) + '}');
}));
}
Example 41
Project: cloudstack-master File: HttpUploadServerHandler.java View source code |
@Override public void channelRead0(ChannelHandlerContext ctx, HttpObject msg) throws Exception { if (msg instanceof HttpRequest) { HttpRequest request = this.request = (HttpRequest) msg; responseContent.setLength(0); if (request.getMethod().equals(HttpMethod.POST)) { URI uri = new URI(request.getUri()); String signature = null; String expires = null; String metadata = null; String hostname = null; long contentLength = 0; for (Entry<String, String> entry : request.headers()) { switch(entry.getKey()) { case HEADER_SIGNATURE: signature = entry.getValue(); break; case HEADER_METADATA: metadata = entry.getValue(); break; case HEADER_EXPIRES: expires = entry.getValue(); break; case HEADER_HOST: hostname = entry.getValue(); break; case HttpHeaders.Names.CONTENT_LENGTH: contentLength = Long.parseLong(entry.getValue()); break; } } logger.info("HEADER: signature=" + signature); logger.info("HEADER: metadata=" + metadata); logger.info("HEADER: expires=" + expires); logger.info("HEADER: hostname=" + hostname); logger.info("HEADER: Content-Length=" + contentLength); QueryStringDecoder decoderQuery = new QueryStringDecoder(uri); Map<String, List<String>> uriAttributes = decoderQuery.parameters(); uuid = uriAttributes.get("uuid").get(0); logger.info("URI: uuid=" + uuid); UploadEntity uploadEntity = null; try { // Validate the request here storageResource.validatePostUploadRequest(signature, metadata, expires, hostname, contentLength, uuid); //create an upload entity. This will fail if entity already exists. uploadEntity = storageResource.createUploadEntity(uuid, metadata, contentLength); } catch (InvalidParameterValueException ex) { logger.error("post request validation failed", ex); responseContent.append(ex.getMessage()); writeResponse(ctx.channel(), HttpResponseStatus.BAD_REQUEST); requestProcessed = true; return; } if (uploadEntity == null) { logger.error("Unable to create upload entity. An exception occurred."); responseContent.append("Internal Server Error"); writeResponse(ctx.channel(), HttpResponseStatus.INTERNAL_SERVER_ERROR); requestProcessed = true; return; } //set the base directory to download the file DiskFileUpload.baseDirectory = uploadEntity.getInstallPathPrefix(); logger.info("base directory: " + DiskFileUpload.baseDirectory); try { //initialize the decoder decoder = new HttpPostRequestDecoder(factory, request); } catch (ErrorDataDecoderExceptionIncompatibleDataDecoderException | e) { logger.error("exception while initialising the decoder", e); responseContent.append(e.getMessage()); writeResponse(ctx.channel(), HttpResponseStatus.INTERNAL_SERVER_ERROR); requestProcessed = true; return; } } else { logger.warn("received a get request"); responseContent.append("only post requests are allowed"); writeResponse(ctx.channel(), HttpResponseStatus.BAD_REQUEST); requestProcessed = true; return; } } // check if the decoder was constructed before if (decoder != null) { if (msg instanceof HttpContent) { // New chunk is received HttpContent chunk = (HttpContent) msg; try { decoder.offer(chunk); } catch (ErrorDataDecoderException e) { logger.error("data decoding exception", e); responseContent.append(e.getMessage()); writeResponse(ctx.channel(), HttpResponseStatus.INTERNAL_SERVER_ERROR); requestProcessed = true; return; } if (chunk instanceof LastHttpContent) { writeResponse(ctx.channel(), readFileUploadData()); reset(); } } } }
Example 42
Project: detective-master File: HttpServerTask.java View source code |
@Override protected void channelRead0(ChannelHandlerContext ctx, Object msg) { if (msg instanceof HttpRequest) { HttpRequest request = this.request = (HttpRequest) msg; if (is100ContinueExpected(request)) { send100Continue(ctx); } buf.setLength(0); buf.append("WELCOME TO THE WILD WILD WEB SERVER\r\n"); buf.append("===================================\r\n"); buf.append("VERSION: ").append(request.getProtocolVersion()).append("\r\n"); buf.append("HOSTNAME: ").append(getHost(request, "unknown")).append("\r\n"); buf.append("REQUEST_URI: ").append(request.getUri()).append("\r\n\r\n"); HttpHeaders headers = request.headers(); if (!headers.isEmpty()) { for (Map.Entry<String, String> h : headers) { String key = h.getKey(); String value = h.getValue(); buf.append("HEADER: ").append(key).append(" = ").append(value).append("\r\n"); } buf.append("\r\n"); } QueryStringDecoder queryStringDecoder = new QueryStringDecoder(request.getUri()); Map<String, List<String>> params = queryStringDecoder.parameters(); if (!params.isEmpty()) { for (Entry<String, List<String>> p : params.entrySet()) { String key = p.getKey(); List<String> vals = p.getValue(); for (String val : vals) { buf.append("PARAM: ").append(key).append(" = ").append(val).append("\r\n"); } } buf.append("\r\n"); } appendDecoderResult(buf, request); } if (msg instanceof HttpContent) { HttpContent httpContent = (HttpContent) msg; ByteBuf content = httpContent.content(); if (content.isReadable()) { buf.append("CONTENT: "); buf.append(content.toString(CharsetUtil.UTF_8)); buf.append("\r\n"); appendDecoderResult(buf, request); } if (msg instanceof LastHttpContent) { buf.append("END OF CONTENT\r\n"); LastHttpContent trailer = (LastHttpContent) msg; if (!trailer.trailingHeaders().isEmpty()) { buf.append("\r\n"); for (String name : trailer.trailingHeaders().names()) { for (String value : trailer.trailingHeaders().getAll(name)) { buf.append("TRAILING HEADER: "); buf.append(name).append(" = ").append(value).append("\r\n"); } } buf.append("\r\n"); } writeResponse(trailer, ctx); } } }
Example 43
Project: Fuga-Framework-master File: NettyHttpServerHandler.java View source code |
@Override public void channelRead0(ChannelHandlerContext ctx, HttpObject msg) { if (msg instanceof HttpRequest) { this.httprequest = (HttpRequest) msg; requestBuilder = new Request.Builder(); requestBuilder.requestMethod(RequestMethod.valueOf(httprequest.method().name())).uri(httprequest.uri()); try { // Decode URI GET query parameters QueryStringDecoder queryStringDecoder = new QueryStringDecoder(httprequest.uri()); requestBuilder.path(queryStringDecoder.path()).query(queryStringDecoder.parameters()); // Process cookies List<Cookie> cookies = new ArrayList<>(); String cookieString = httprequest.headers().get(HttpHeaderNames.COOKIE); if (cookieString != null) { ServerCookieDecoder.STRICT.decode(cookieString).stream().forEach(( cookie) -> { cookies.add(NettyCookieConverter.convertToFuga(cookie)); }); } requestBuilder.cookies(cookies); // Process headers Map<String, String> headers = new HashMap<>(); httprequest.headers().entries().stream().forEach(( e) -> { headers.put(e.getKey(), e.getValue()); }); requestBuilder.headers(headers); // Get real parameters from frontend HTTP server boolean isSecure = false; SocketAddress remoteAddress = ctx.channel().remoteAddress(); if (forwarded == 1) { // RFC7239 if (headers.containsKey("Forwarded")) { String fwdStr = headers.get("Forwarded"); List<String> fwdparams = Stream.of(fwdStr.split("; ")).map(( s) -> s.trim()).collect(Collectors.toList()); for (String f : fwdparams) { String p[] = f.split("="); switch(p[0]) { case "for": remoteAddress = parseAddress(p[1]); break; case "proto": isSecure = p[1].equals("https"); break; } } } } else if (forwarded == 0) { // X-Forwarded if (headers.containsKey("X-Forwarded-Proto")) { if (headers.get("X-Forwarded-Proto").equalsIgnoreCase("https")) { isSecure = true; } } if (headers.containsKey("X-Forwarded-For")) { String fwdfor = headers.get("X-Forwarded-For"); remoteAddress = parseAddress(fwdfor.contains(",") ? fwdfor.substring(0, fwdfor.indexOf(',')) : fwdfor); } else if (headers.containsKey("X-Real-IP")) { remoteAddress = parseAddress(headers.get("X-Real-IP")); } } requestBuilder.remoteAddress(remoteAddress).isSecure(isSecure); if (headers.containsKey("Accept-Language")) { String acceptLanguage = headers.get("Accept-Language"); List<Locale> acceptLocales = Stream.of(acceptLanguage.split(",")).map(( s) -> s.contains(";") ? s.substring(0, s.indexOf(";")).trim() : s.trim()).map(( s) -> s.contains("-") ? new Locale(s.split("-")[0], s.split("-")[0]) : new Locale(s)).collect(Collectors.toList()); requestBuilder.acceptLocales(acceptLocales); } if (httprequest.method().equals(HttpMethod.GET)) { processResponse(ctx); return; } decoder = true; } catch (Exception e) { processClientError(ctx, requestBuilder.build(), 400); return; } } if (msg instanceof HttpContent && decoder) { HttpContent httpContent = (HttpContent) msg; contentBuffer.writeBytes(httpContent.content()); if (httpContent instanceof LastHttpContent) { requestBuilder.content(new BufferedContent(contentBuffer.nioBuffer())); processResponse(ctx); } } }
Example 44
Project: hydra-master File: HttpStaticFileHandler.java View source code |
@Override public void channelRead0(ChannelHandlerContext ctx, FullHttpRequest request) throws Exception { if (!request.getDecoderResult().isSuccess()) { sendError(ctx, BAD_REQUEST); return; } // since we are using send file, we must remove the compression unit or it will donk out ChannelHandler compressor = ctx.pipeline().get("compressor"); if (compressor != null) { ctx.pipeline().remove("compressor"); } if (request.getMethod() != GET) { sendError(ctx, METHOD_NOT_ALLOWED); return; } QueryStringDecoder urlDecoder = new QueryStringDecoder(request.getUri()); String target = urlDecoder.path(); final String path = sanitizeUri(target); if (path == null) { sendError(ctx, FORBIDDEN); return; } Path file = Paths.get(webDir + path); log.trace("trying to serve static file {}", file); if (Files.isHidden(file) || Files.notExists(file)) { sendError(ctx, NOT_FOUND); return; } if (!Files.isRegularFile(file)) { sendError(ctx, FORBIDDEN); return; } log.trace("cache validation occuring for {}", file); // Cache Validation String ifModifiedSince = request.headers().get(IF_MODIFIED_SINCE); if (ifModifiedSince != null && !ifModifiedSince.isEmpty()) { SimpleDateFormat dateFormatter = new SimpleDateFormat(HttpUtils.HTTP_DATE_FORMAT, Locale.US); Date ifModifiedSinceDate = dateFormatter.parse(ifModifiedSince); // Only compare up to the second because the datetime format we send to the client // does not have milliseconds long ifModifiedSinceDateSeconds = ifModifiedSinceDate.getTime() / 1000; long fileLastModifiedSeconds = Files.getLastModifiedTime(file).toMillis() / 1000; if (ifModifiedSinceDateSeconds == fileLastModifiedSeconds) { sendNotModified(ctx); return; } } log.trace("sending {}", file); FileChannel fileChannel; try { fileChannel = FileChannel.open(file, StandardOpenOption.READ); } catch (IOException fnfe) { sendError(ctx, NOT_FOUND); return; } long fileLength = fileChannel.size(); HttpResponse response = new DefaultHttpResponse(HTTP_1_1, OK); setContentLength(response, fileLength); setContentTypeHeader(response, file); try { setDateAndCacheHeaders(response, file); } catch (IOException ioex) { fileChannel.close(); sendError(ctx, NOT_FOUND); return; } if (isKeepAlive(request)) { response.headers().set(CONNECTION, HttpHeaders.Values.KEEP_ALIVE); } // Write the initial line and the header. ctx.write(response); // Write the content. ctx.write(new DefaultFileRegion(fileChannel, 0, fileLength)); // Write the end marker ChannelFuture lastContentFuture = ctx.writeAndFlush(LastHttpContent.EMPTY_LAST_CONTENT); // Decide whether to close the connection or not. if (!isKeepAlive(request)) { // Close the connection when the whole content is written out. lastContentFuture.addListener(ChannelFutureListener.CLOSE); } else { ctx.pipeline().remove(this); if (compressor != null) { ctx.pipeline().addBefore("query", "compressor", compressor); } } }
Example 45
Project: jframe-master File: AbstractHandler.java View source code |
protected void readHttpRequest(HttpRequest msg) throws Exception { HttpRequest req = (HttpRequest) msg; AbstractHandler.this.req = req; if (!req.getMethod().equals(HttpMethod.POST) || !isValidHeaders(req.headers())) { finish(ctx); return; } keepAlive = HttpHeaders.isKeepAlive(req); String encoding = req.headers().get(HttpHeaders.Names.ACCEPT_ENCODING); if (encoding != null && encoding.indexOf("gzip") != -1) { gzip = true; } QueryStringDecoder queryStringDecoder = new QueryStringDecoder(req.getUri()); _params = queryStringDecoder.parameters(); if (LOG.isDebugEnabled()) { LOG.debug("Receive request -> {}", req.getUri()); } }
Example 46
Project: vertx-jersey-master File: DefaultJerseyHandler.java View source code |
protected URI getAbsoluteURI(HttpServerRequest vertxRequest) { URI absoluteUri; String hostAndPort = vertxRequest.headers().get(HttpHeaders.HOST); try { absoluteUri = URI.create(vertxRequest.absoluteURI()); if (hostAndPort != null && !hostAndPort.isEmpty()) { String[] parts = hostAndPort.split(":"); String host = parts[0]; int port = (parts.length > 1 ? Integer.valueOf(parts[1]) : -1); if (!host.equalsIgnoreCase(absoluteUri.getHost()) || port != absoluteUri.getPort()) { absoluteUri = UriBuilder.fromUri(absoluteUri).host(host).port(port).build(); } } return absoluteUri; } catch (IllegalArgumentException e) { String uri = vertxRequest.uri(); if (!uri.contains("?")) { throw e; } try { logger.warn("Invalid URI: " + uri + ". Attempting to parse query string.", e); QueryStringDecoder decoder = new QueryStringDecoder(uri); StringBuilder sb = new StringBuilder(decoder.path() + "?"); for (Map.Entry<String, List<String>> p : decoder.parameters().entrySet()) { for (String value : p.getValue()) { sb.append(p.getKey()).append("=").append(URLEncoder.encode(value, "UTF-8")); } } return URI.create(sb.toString()); } catch (Exception e1) { throw new RuntimeException(e1); } } }
Example 47
Project: vertx-rest-storage-master File: EventBusAdapter.java View source code |
@Override public MultiMap params() { if (params == null) { QueryStringDecoder queryStringDecoder = new QueryStringDecoder(uri()); Map<String, List<String>> prms = queryStringDecoder.parameters(); params = new CaseInsensitiveHeaders(); if (!prms.isEmpty()) { for (Map.Entry<String, List<String>> entry : prms.entrySet()) { params.add(entry.getKey(), entry.getValue()); } } } return params; }
Example 48
Project: vert.x-master File: HttpUtils.java View source code |
static MultiMap params(String uri) { QueryStringDecoder queryStringDecoder = new QueryStringDecoder(uri); Map<String, List<String>> prms = queryStringDecoder.parameters(); MultiMap params = new CaseInsensitiveHeaders(); if (!prms.isEmpty()) { for (Map.Entry<String, List<String>> entry : prms.entrySet()) { params.add(entry.getKey(), entry.getValue()); } } return params; }
Example 49
Project: dcache-master File: HttpPoolRequestHandler.java View source code |
/** * Get the mover channel for a certain HTTP request. The mover * channel is identified by UUID generated upon mover start and * sent back to the door as a part of the address info. * * @param request HttpRequest that was sent by the client * @param exclusive True if the mover channel exclusively is to be opened * in exclusive mode. False if the mover channel can be * shared with other requests. * @return Mover channel for specified UUID * @throws IllegalArgumentException Request did not include UUID or no * mover channel found for UUID in the request */ private NettyTransferService<HttpProtocolInfo>.NettyMoverChannel<HttpProtocolInfo> open(HttpRequest request, boolean exclusive) throws IllegalArgumentException, URISyntaxException { QueryStringDecoder queryStringDecoder = new QueryStringDecoder(request.getUri()); Map<String, List<String>> params = queryStringDecoder.parameters(); if (!params.containsKey(HttpTransferService.UUID_QUERY_PARAM)) { if (!request.getUri().equals("/favicon.ico")) { _logger.error("Received request without UUID in the query " + "string. Request-URI was {}", request.getUri()); } throw new IllegalArgumentException("Query string does not include any UUID."); } List<String> uuidList = params.get(HttpTransferService.UUID_QUERY_PARAM); if (uuidList.isEmpty()) { throw new IllegalArgumentException("UUID parameter does not include any value."); } UUID uuid = UUID.fromString(uuidList.get(0)); NettyTransferService<HttpProtocolInfo>.NettyMoverChannel<HttpProtocolInfo> file = _server.openFile(uuid, exclusive); if (file == null) { throw new IllegalArgumentException("Request is no longer valid. " + "Please resubmit to door."); } URI uri = new URI(request.getUri()); FsPath requestedFile = FsPath.create(uri.getPath()); FsPath transferFile = FsPath.create(file.getProtocolInfo().getPath()); if (!requestedFile.equals(transferFile)) { _logger.warn("Received an illegal request for file {}, while serving {}", requestedFile, transferFile); throw new IllegalArgumentException("The file you specified does " + "not match the UUID you specified!"); } _files.add(file); return file; }
Example 50
Project: disthene-reader-master File: RenderParameters.java View source code |
public static RenderParameters parse(HttpRequest request) throws ParameterParsingException { //todo: do it in some beautiful way String parameterString; if (request.getMethod().equals(HttpMethod.POST)) { ((HttpContent) request).content().resetReaderIndex(); byte[] bytes = new byte[((HttpContent) request).content().readableBytes()]; ((HttpContent) request).content().readBytes(bytes); parameterString = "/render/?" + new String(bytes); } else { parameterString = request.getUri(); } logger.debug(parameterString); QueryStringDecoder queryStringDecoder = new QueryStringDecoder(parameterString); RenderParameters parameters = new RenderParameters(); if (queryStringDecoder.parameters().get("tenant") != null) { parameters.setTenant(queryStringDecoder.parameters().get("tenant").get(0)); } else { // assume tenant "NONE" parameters.setTenant("NONE"); logger.debug("No tenant in request. Assuming NONE"); } if (queryStringDecoder.parameters().get("target") != null) { for (String path : queryStringDecoder.parameters().get("target")) { parameters.getTargets().add(path); } } // First decode tz and default to UTC if (queryStringDecoder.parameters().get("tz") != null) { try { parameters.setTz(DateTimeZone.forID(queryStringDecoder.parameters().get("tz").get(0))); } catch (Exception e) { throw new InvalidParameterValueException("Timezone not found: " + queryStringDecoder.parameters().get("tz").get(0)); } } else { parameters.setTz(DateTimeZone.UTC); } // parse from defaulting to -1d if (queryStringDecoder.parameters().get("from") != null) { try { parameters.setFrom(parseExtendedTime(queryStringDecoder.parameters().get("from").get(0), parameters.getTz())); } catch (NumberFormatException e) { throw new InvalidParameterValueException("DateTime format not recognized (from): " + queryStringDecoder.parameters().get("from").get(0)); } } else { // default to -1d parameters.setFrom((System.currentTimeMillis() / 1000L) - 86400); } // parse until if ((queryStringDecoder.parameters().get("until") != null) || (queryStringDecoder.parameters().get("until").get(0).equals("now"))) { try { parameters.setUntil(parseExtendedTime(queryStringDecoder.parameters().get("until").get(0), parameters.getTz())); } catch (NumberFormatException e) { throw new InvalidParameterValueException("DateTime format not recognized (until): " + queryStringDecoder.parameters().get("until").get(0)); } } else { // default to now parameters.setUntil(System.currentTimeMillis() / 1000L); } // Prohibiting "from greater than until" if (parameters.getFrom() > parameters.getUntil()) { parameters.setFrom(parameters.getUntil()); } // Prohibiting "until in the future" if (parameters.getUntil() > (System.currentTimeMillis() / 1000L)) { parameters.setUntil(System.currentTimeMillis() / 1000L); } // parse format defaulting to PNG if (queryStringDecoder.parameters().get("format") != null) { try { parameters.setFormat(Format.valueOf(queryStringDecoder.parameters().get("format").get(0).toUpperCase())); } catch (IllegalArgumentException e) { throw new InvalidParameterValueException("Format not supported: " + queryStringDecoder.parameters().get("format").get(0)); } } else { // default to now parameters.setFormat(Format.PNG); } if (queryStringDecoder.parameters().get("maxDataPoints") != null) { try { parameters.setMaxDataPoints(Integer.valueOf(queryStringDecoder.parameters().get("maxDataPoints").get(0))); } catch (NumberFormatException e) { throw new InvalidParameterValueException("fontSize format : " + queryStringDecoder.parameters().get("fontSize").get(0)); } } //************************************************************************************************************* if (queryStringDecoder.parameters().get("areaAlpha") != null) { try { Float areaAlpha = Float.valueOf(queryStringDecoder.parameters().get("areaAlpha").get(0)); if (areaAlpha < 0.) areaAlpha = 0f; if (areaAlpha > 1.) areaAlpha = 1f; parameters.getImageParameters().setAreaAlpha(areaAlpha); } catch (NumberFormatException e) { throw new InvalidParameterValueException("AreaAlpha format : " + queryStringDecoder.parameters().get("areaAlpha").get(0)); } } if (queryStringDecoder.parameters().get("areaMode") != null) { try { parameters.getImageParameters().setAreaMode(ImageParameters.AreaMode.valueOf(queryStringDecoder.parameters().get("areaMode").get(0).toUpperCase())); } catch (IllegalArgumentException e) { throw new InvalidParameterValueException("Unknown area mode : " + queryStringDecoder.parameters().get("areaMode").get(0).toUpperCase()); } } if (queryStringDecoder.parameters().get("bgcolor") != null) { Color color = ColorTable.getColorByName(queryStringDecoder.parameters().get("bgcolor").get(0).replaceAll("^\"|\"$", "")); if (color != null) parameters.getImageParameters().setBackgroundColor(color); } if (queryStringDecoder.parameters().get("colorList") != null) { String colorsString = queryStringDecoder.parameters().get("colorList").get(0).replaceAll("^\"|\"$", ""); String[] split = colorsString.split(","); List<Color> colors = new ArrayList<>(); for (String c : split) { Color color = ColorTable.getColorByName(c); if (color != null) colors.add(color); } if (colors.size() > 0) { parameters.getImageParameters().setColorList(colors); } } if (queryStringDecoder.parameters().get("drawNullAsZero") != null) { parameters.getImageParameters().setDrawNullAsZero(Boolean.parseBoolean(queryStringDecoder.parameters().get("drawNullAsZero").get(0))); } if (queryStringDecoder.parameters().get("fgcolor") != null) { Color color = ColorTable.getColorByName(queryStringDecoder.parameters().get("fgcolor").get(0).replaceAll("^\"|\"$", "")); if (color != null) parameters.getImageParameters().setForegroundColor(color); } if (queryStringDecoder.parameters().get("fontBold") != null) { parameters.getImageParameters().setFontBold(Boolean.parseBoolean(queryStringDecoder.parameters().get("fontBold").get(0))); } if (queryStringDecoder.parameters().get("fontItalic") != null) { parameters.getImageParameters().setFontItalic(Boolean.parseBoolean(queryStringDecoder.parameters().get("fontItalic").get(0))); } if (queryStringDecoder.parameters().get("fontName") != null) { parameters.getImageParameters().setFontName(queryStringDecoder.parameters().get("fontName").get(0).toLowerCase()); } if (queryStringDecoder.parameters().get("fontSize") != null) { try { parameters.getImageParameters().setFontSize(Float.valueOf(queryStringDecoder.parameters().get("fontSize").get(0))); } catch (NumberFormatException e) { throw new InvalidParameterValueException("fontSize format : " + queryStringDecoder.parameters().get("fontSize").get(0)); } } if (queryStringDecoder.parameters().get("graphOnly") != null) { parameters.getImageParameters().setGraphOnly(Boolean.parseBoolean(queryStringDecoder.parameters().get("graphOnly").get(0))); } if (queryStringDecoder.parameters().get("graphType") != null) { try { parameters.getImageParameters().setGraphType(Graph.GraphType.valueOf(queryStringDecoder.parameters().get("graphType").get(0).toUpperCase())); } catch (IllegalArgumentException e) { throw new InvalidParameterValueException("Unknown graphType : " + queryStringDecoder.parameters().get("graphType").get(0).toUpperCase()); } } if (queryStringDecoder.parameters().get("hideLegend") != null) { boolean hideLegend = Boolean.parseBoolean(queryStringDecoder.parameters().get("hideLegend").get(0)); if (hideLegend) { parameters.getImageParameters().setHideLegendCompletely(true); } else { parameters.getImageParameters().setHideLegend(false); } } if (queryStringDecoder.parameters().get("hideAxes") != null) { parameters.getImageParameters().setHideAxes(Boolean.parseBoolean(queryStringDecoder.parameters().get("hideAxes").get(0))); } if (queryStringDecoder.parameters().get("hideYAxes") != null) { parameters.getImageParameters().setHideYAxis(Boolean.parseBoolean(queryStringDecoder.parameters().get("hideYAxes").get(0))); } if (queryStringDecoder.parameters().get("hideGrid") != null) { parameters.getImageParameters().setHideGrid(Boolean.parseBoolean(queryStringDecoder.parameters().get("hideGrid").get(0))); } if (queryStringDecoder.parameters().get("height") != null) { try { parameters.getImageParameters().setHeight(Integer.valueOf(queryStringDecoder.parameters().get("height").get(0))); } catch (NumberFormatException e) { throw new InvalidParameterValueException("Height format : " + queryStringDecoder.parameters().get("height").get(0)); } } if (queryStringDecoder.parameters().get("leftColor") != null) { Color color = ColorTable.getColorByName(queryStringDecoder.parameters().get("leftColor").get(0).replaceAll("^\"|\"$", "")); if (color != null) parameters.getImageParameters().setLeftColor(color); } if (queryStringDecoder.parameters().get("leftDashed") != null) { parameters.getImageParameters().setLeftDashed(Boolean.parseBoolean(queryStringDecoder.parameters().get("leftDashed").get(0))); } if (queryStringDecoder.parameters().get("leftWidth") != null) { try { parameters.getImageParameters().setLeftWidth(Double.valueOf(queryStringDecoder.parameters().get("leftWidth").get(0))); } catch (NumberFormatException e) { throw new InvalidParameterValueException("leftWidth format : " + queryStringDecoder.parameters().get("leftWidth").get(0)); } } if (queryStringDecoder.parameters().get("lineMode") != null) { try { parameters.getImageParameters().setLineMode(ImageParameters.LineMode.valueOf(queryStringDecoder.parameters().get("lineMode").get(0).toUpperCase())); } catch (IllegalArgumentException e) { throw new InvalidParameterValueException("Unknown line mode : " + queryStringDecoder.parameters().get("lineMode").get(0).toUpperCase()); } } if (queryStringDecoder.parameters().get("lineWidth") != null) { try { parameters.getImageParameters().setLineWidth(Double.valueOf(queryStringDecoder.parameters().get("lineWidth").get(0))); } catch (NumberFormatException e) { throw new InvalidParameterValueException("lineWidth format : " + queryStringDecoder.parameters().get("lineWidth").get(0)); } } if (queryStringDecoder.parameters().get("logBase") != null) { try { Double logBase = Double.valueOf(queryStringDecoder.parameters().get("logBase").get(0)); if (logBase > 0 && logBase != 1) { parameters.getImageParameters().setLogBase(logBase); } } catch (NumberFormatException e) { throw new InvalidParameterValueException("lineWidth format : " + queryStringDecoder.parameters().get("lineWidth").get(0)); } } if (queryStringDecoder.parameters().get("majorGridLineColor") != null) { Color color = ColorTable.getColorByName(queryStringDecoder.parameters().get("majorGridLineColor").get(0).replaceAll("^\"|\"$", "")); if (color != null) parameters.getImageParameters().setMajorGridLineColor(color); } if (queryStringDecoder.parameters().get("margin") != null) { try { Double margin = Double.valueOf(queryStringDecoder.parameters().get("margin").get(0)); if (margin > 0) { parameters.getImageParameters().setMargin(margin.intValue()); } } catch (NumberFormatException e) { throw new InvalidParameterValueException("margin format : " + queryStringDecoder.parameters().get("margin").get(0)); } } if (queryStringDecoder.parameters().get("minorGridLineColor") != null) { Color color = ColorTable.getColorByName(queryStringDecoder.parameters().get("minorGridLineColor").get(0).replaceAll("^\"|\"$", "")); if (color != null) parameters.getImageParameters().setMinorGridLineColor(color); } if (queryStringDecoder.parameters().get("minorY") != null) { try { Double minorY = Double.valueOf(queryStringDecoder.parameters().get("minorY").get(0)); if (minorY >= 0) { parameters.getImageParameters().setMinorY(minorY.intValue()); } } catch (NumberFormatException e) { throw new InvalidParameterValueException("minorY format : " + queryStringDecoder.parameters().get("minorY").get(0)); } } if (queryStringDecoder.parameters().get("minXStep") != null) { try { Double minXStep = Double.valueOf(queryStringDecoder.parameters().get("minXStep").get(0)); if (minXStep >= 0) { parameters.getImageParameters().setMinXStep(minXStep.intValue()); } } catch (NumberFormatException e) { throw new InvalidParameterValueException("minXStep format : " + queryStringDecoder.parameters().get("minXStep").get(0)); } } if (queryStringDecoder.parameters().get("pieMode") != null) { try { parameters.getImageParameters().setPieMode(Graph.PieMode.valueOf(queryStringDecoder.parameters().get("pieMode").get(0).toUpperCase())); } catch (IllegalArgumentException e) { throw new InvalidParameterValueException("Unknown pieMode : " + queryStringDecoder.parameters().get("pieMode").get(0).toUpperCase()); } } if (queryStringDecoder.parameters().get("pieLabels") != null) { try { parameters.getImageParameters().setPieLabelsOrientation(Graph.PieLabelsOrientation.valueOf(queryStringDecoder.parameters().get("pieLabels").get(0).toUpperCase())); } catch (IllegalArgumentException e) { throw new InvalidParameterValueException("Unknown pieLabels : " + queryStringDecoder.parameters().get("pieLabels").get(0).toUpperCase()); } } if (queryStringDecoder.parameters().get("rightColor") != null) { Color color = ColorTable.getColorByName(queryStringDecoder.parameters().get("rightColor").get(0).replaceAll("^\"|\"$", "")); if (color != null) parameters.getImageParameters().setRightColor(color); } if (queryStringDecoder.parameters().get("rightDashed") != null) { parameters.getImageParameters().setRightDashed(Boolean.parseBoolean(queryStringDecoder.parameters().get("rightDashed").get(0))); } if (queryStringDecoder.parameters().get("rightWidth") != null) { try { parameters.getImageParameters().setRightWidth(Double.valueOf(queryStringDecoder.parameters().get("rightWidth").get(0))); } catch (NumberFormatException e) { throw new InvalidParameterValueException("rightWidth format : " + queryStringDecoder.parameters().get("rightWidth").get(0)); } } if (queryStringDecoder.parameters().get("title") != null) { parameters.getImageParameters().setTitle(queryStringDecoder.parameters().get("title").get(0).replaceAll("^\"|\"$", "")); } if (queryStringDecoder.parameters().get("uniqueLegend") != null) { parameters.getImageParameters().setUniqueLegend(Boolean.parseBoolean(queryStringDecoder.parameters().get("uniqueLegend").get(0))); } if (queryStringDecoder.parameters().get("valueLabels") != null) { try { parameters.getImageParameters().setPieLabelsStyle(Graph.PieLabelsStyle.valueOf(queryStringDecoder.parameters().get("valueLabels").get(0).toUpperCase())); } catch (IllegalArgumentException e) { throw new InvalidParameterValueException("Unknown valueLabels : " + queryStringDecoder.parameters().get("valueLabels").get(0).toUpperCase()); } } if (queryStringDecoder.parameters().get("valueLabelsMin") != null) { try { parameters.getImageParameters().setPieLabelsMin(Double.valueOf(queryStringDecoder.parameters().get("valueLabelsMin").get(0))); } catch (NumberFormatException e) { throw new InvalidParameterValueException("valueLabelsMin format : " + queryStringDecoder.parameters().get("valueLabelsMin").get(0)); } } if (queryStringDecoder.parameters().get("vtitle") != null) { parameters.getImageParameters().setVerticalTitle(queryStringDecoder.parameters().get("vtitle").get(0).replaceAll("^\"|\"$", "")); } if (queryStringDecoder.parameters().get("vtitleRight") != null) { parameters.getImageParameters().setVerticalTitleRight(queryStringDecoder.parameters().get("vtitleRight").get(0).replaceAll("^\"|\"$", "")); } if (queryStringDecoder.parameters().get("width") != null) { try { parameters.getImageParameters().setWidth(Integer.valueOf(queryStringDecoder.parameters().get("width").get(0))); } catch (NumberFormatException e) { throw new InvalidParameterValueException("Width format : " + queryStringDecoder.parameters().get("width").get(0)); } } if (queryStringDecoder.parameters().get("yAxisSide") != null) { try { parameters.getImageParameters().setyAxisSide(ImageParameters.Side.valueOf(queryStringDecoder.parameters().get("yAxisSide").get(0).toUpperCase())); } catch (IllegalArgumentException e) { throw new InvalidParameterValueException("Unknown y axis side : " + queryStringDecoder.parameters().get("yAxisSide").get(0).toUpperCase()); } } if (queryStringDecoder.parameters().get("yMax") != null) { try { parameters.getImageParameters().setyMax(Double.valueOf(queryStringDecoder.parameters().get("yMax").get(0))); } catch (NumberFormatException e) { throw new InvalidParameterValueException("yMax format : " + queryStringDecoder.parameters().get("yMax").get(0)); } } if (queryStringDecoder.parameters().get("yMaxLeft") != null) { try { parameters.getImageParameters().setyMaxLeft(Double.valueOf(queryStringDecoder.parameters().get("yMaxLeft").get(0))); } catch (NumberFormatException e) { throw new InvalidParameterValueException("yMaxLeft format : " + queryStringDecoder.parameters().get("yMaxLeft").get(0)); } } if (queryStringDecoder.parameters().get("yMaxRight") != null) { try { parameters.getImageParameters().setyMaxRight(Double.valueOf(queryStringDecoder.parameters().get("yMaxRight").get(0))); } catch (NumberFormatException e) { throw new InvalidParameterValueException("yMaxRight format : " + queryStringDecoder.parameters().get("yMaxRight").get(0)); } } if (queryStringDecoder.parameters().get("yMin") != null) { try { parameters.getImageParameters().setyMin(Double.valueOf(queryStringDecoder.parameters().get("yMin").get(0))); } catch (NumberFormatException e) { throw new InvalidParameterValueException("yMin format : " + queryStringDecoder.parameters().get("yMin").get(0)); } } if (queryStringDecoder.parameters().get("yMinLeft") != null) { try { parameters.getImageParameters().setyMinLeft(Double.valueOf(queryStringDecoder.parameters().get("yMinLeft").get(0))); } catch (NumberFormatException e) { throw new InvalidParameterValueException("yMinLeft format : " + queryStringDecoder.parameters().get("yMinLeft").get(0)); } } if (queryStringDecoder.parameters().get("yMinRight") != null) { try { parameters.getImageParameters().setyMinRight(Double.valueOf(queryStringDecoder.parameters().get("yMinRight").get(0))); } catch (NumberFormatException e) { throw new InvalidParameterValueException("yMinRight format : " + queryStringDecoder.parameters().get("yMinRight").get(0)); } } if (queryStringDecoder.parameters().get("yStep") != null) { try { parameters.getImageParameters().setyStep(Double.valueOf(queryStringDecoder.parameters().get("yStep").get(0))); } catch (NumberFormatException e) { throw new InvalidParameterValueException("yStep format : " + queryStringDecoder.parameters().get("yStep").get(0)); } } if (queryStringDecoder.parameters().get("yStepLeft") != null) { try { parameters.getImageParameters().setyStepLeft(Double.valueOf(queryStringDecoder.parameters().get("yStepLeft").get(0))); } catch (NumberFormatException e) { throw new InvalidParameterValueException("yStepLeft format : " + queryStringDecoder.parameters().get("yStepLeft").get(0)); } } if (queryStringDecoder.parameters().get("yStepRight") != null) { try { parameters.getImageParameters().setyStepRight(Double.valueOf(queryStringDecoder.parameters().get("yStepRight").get(0))); } catch (NumberFormatException e) { throw new InvalidParameterValueException("yStepRight format : " + queryStringDecoder.parameters().get("yStepRight").get(0)); } } if (queryStringDecoder.parameters().get("yUnitSystem") != null) { try { parameters.getImageParameters().setyUnitSystem(UnitSystem.valueOf(queryStringDecoder.parameters().get("yUnitSystem").get(0).toUpperCase())); } catch (IllegalArgumentException e) { throw new InvalidParameterValueException("Unknown yUnitSystem : " + queryStringDecoder.parameters().get("yUnitSystem").get(0).toUpperCase()); } } if (queryStringDecoder.parameters().get("connectedLimit") != null) { try { parameters.getImageParameters().setConnectedLimit(Integer.valueOf(queryStringDecoder.parameters().get("connectedLimit").get(0))); } catch (NumberFormatException e) { throw new InvalidParameterValueException("ConnectedLimit format : " + queryStringDecoder.parameters().get("connectedLimit").get(0)); } } return parameters; }
Example 51
Project: netty-router-master File: Router.java View source code |
//-------------------------------------------------------------------------- /** * If there's no match, returns the result with {@link #notFound(Object) notFound} * as the target if it is set, otherwise returns {@code null}. */ public RouteResult<T> route(HttpMethod method, String uri) { QueryStringDecoder decoder = new QueryStringDecoder(uri); String[] tokens = Path.removeSlashesAtBothEnds(decoder.path()).split("/"); MethodlessRouter<T> router = routers.get(method); if (router == null) { router = anyMethodRouter; } RouteResult<T> ret = router.route(tokens); if (ret != null) { return new RouteResult(ret.target(), ret.pathParams(), decoder.parameters()); } if (router != anyMethodRouter) { ret = anyMethodRouter.route(tokens); if (ret != null) { return new RouteResult(ret.target(), ret.pathParams(), decoder.parameters()); } } if (notFound != null) { // Collections.<String, String>emptyMap() return new RouteResult<T>(notFound, new HashMap<String, String>(), decoder.parameters()); } return null; }
Example 52
Project: tinkerpop-master File: HttpGremlinEndpointHandler.java View source code |
private static Quartet<String, Map<String, Object>, String, Map<String, String>> getRequestArguments(final FullHttpRequest request) { if (request.getMethod() == GET) { final QueryStringDecoder decoder = new QueryStringDecoder(request.getUri()); final List<String> gremlinParms = decoder.parameters().get(Tokens.ARGS_GREMLIN); if (null == gremlinParms || gremlinParms.size() == 0) throw new IllegalArgumentException("no gremlin script supplied"); final String script = gremlinParms.get(0); if (script.isEmpty()) throw new IllegalArgumentException("no gremlin script supplied"); // query string parameters - take the first instance of a key only - ignore the rest final Map<String, Object> bindings = new HashMap<>(); decoder.parameters().entrySet().stream().filter( kv -> kv.getKey().startsWith(ARGS_BINDINGS_DOT)).forEach( kv -> bindings.put(kv.getKey().substring(ARGS_BINDINGS_DOT.length()), kv.getValue().get(0))); // don't allow both rebindings and aliases parameters as they are the same thing. aliases were introduced // as of 3.1.0 as a replacement for rebindings. this check can be removed when rebindings are completely // removed from the protocol final boolean hasRebindings = decoder.parameters().entrySet().stream().anyMatch( kv -> kv.getKey().startsWith(ARGS_REBINDINGS_DOT)); final boolean hasAliases = decoder.parameters().entrySet().stream().anyMatch( kv -> kv.getKey().startsWith(ARGS_ALIASES_DOT)); if (hasRebindings && hasAliases) throw new IllegalArgumentException("prefer use of the 'aliases' parameter over 'rebindings' and do not use both"); final Map<String, String> aliases = new HashMap<>(); final String rebindingOrAliasParameter = hasRebindings ? ARGS_REBINDINGS_DOT : ARGS_ALIASES_DOT; decoder.parameters().entrySet().stream().filter( kv -> kv.getKey().startsWith(rebindingOrAliasParameter)).forEach( kv -> aliases.put(kv.getKey().substring(rebindingOrAliasParameter.length()), kv.getValue().get(0))); final List<String> languageParms = decoder.parameters().get(Tokens.ARGS_LANGUAGE); final String language = (null == languageParms || languageParms.size() == 0) ? null : languageParms.get(0); return Quartet.with(script, bindings, language, aliases); } else { final JsonNode body; try { body = mapper.readTree(request.content().toString(CharsetUtil.UTF_8)); } catch (IOException ioe) { throw new IllegalArgumentException("body could not be parsed", ioe); } final JsonNode scriptNode = body.get(Tokens.ARGS_GREMLIN); if (null == scriptNode) throw new IllegalArgumentException("no gremlin script supplied"); final JsonNode bindingsNode = body.get(Tokens.ARGS_BINDINGS); if (bindingsNode != null && !bindingsNode.isObject()) throw new IllegalArgumentException("bindings must be a Map"); final Map<String, Object> bindings = new HashMap<>(); if (bindingsNode != null) bindingsNode.fields().forEachRemaining( kv -> bindings.put(kv.getKey(), fromJsonNode(kv.getValue()))); // don't allow both rebindings and aliases parameters as they are the same thing. aliases were introduced // as of 3.1.0 as a replacement for rebindings. this check can be removed when rebindings are completely // removed from the protocol final boolean hasRebindings = body.has(Tokens.ARGS_REBINDINGS); final boolean hasAliases = body.has(Tokens.ARGS_ALIASES); if (hasRebindings && hasAliases) throw new IllegalArgumentException("prefer use of the 'aliases' parameter over 'rebindings' and do not use both"); final String rebindingOrAliasParameter = hasRebindings ? Tokens.ARGS_REBINDINGS : Tokens.ARGS_ALIASES; final JsonNode aliasesNode = body.get(rebindingOrAliasParameter); if (aliasesNode != null && !aliasesNode.isObject()) throw new IllegalArgumentException("aliases must be a Map"); final Map<String, String> aliases = new HashMap<>(); if (aliasesNode != null) aliasesNode.fields().forEachRemaining( kv -> aliases.put(kv.getKey(), kv.getValue().asText())); final JsonNode languageNode = body.get(Tokens.ARGS_LANGUAGE); final String language = null == languageNode ? null : languageNode.asText(); return Quartet.with(scriptNode.asText(), bindings, language, aliases); } }
Example 53
Project: AndroidHttpCapture-master File: HarCaptureFilter.java View source code |
//TODO: add unit tests for these utility-like capture() methods protected void captureQueryParameters(HttpRequest httpRequest) { // capture query parameters. it is safe to assume the query string is UTF-8, since it "should" be in US-ASCII (a subset of UTF-8), // but sometimes does include UTF-8 characters. QueryStringDecoder queryStringDecoder = null; queryStringDecoder = new QueryStringDecoder(httpRequest.getUri(), Charset.forName("UTF-8")); try { for (Map.Entry<String, List<String>> entry : queryStringDecoder.parameters().entrySet()) { for (String value : entry.getValue()) { harEntry.getRequest().getQueryString().add(new HarNameValuePair(entry.getKey(), value)); } } } catch (IllegalArgumentException e) { harEntry.setComment("Unable to decode query parameters on URI: " + httpRequest.getUri()); log.info("Unable to decode query parameters on URI: " + httpRequest.getUri(), e); } }
Example 54
Project: WaarpGatewayFtp-master File: HttpSslHandler.java View source code |
private void getParams() { if (request.method() == HttpMethod.GET) { params = null; } else if (request.method() == HttpMethod.POST) { ByteBuf content = request.content(); if (content.isReadable()) { String param = content.toString(WaarpStringUtils.UTF8); QueryStringDecoder queryStringDecoder2 = new QueryStringDecoder("/?" + param); params = queryStringDecoder2.parameters(); } else { params = null; } } }
Example 55
Project: WaarpR66-master File: HttpSslHandler.java View source code |
private String Spooled(boolean detailed) { // XXXSPOOLEDXXX String spooled = REQUEST.Spooled.readFileUnique(this); String uri = null; if (detailed) { uri = "SpooledDetailed.html"; } else { uri = "Spooled.html"; } QueryStringDecoder queryStringDecoder = new QueryStringDecoder(request.uri()); params = queryStringDecoder.parameters(); String name = null; if (params.containsKey("name")) { name = getTrimValue("name"); } int istatus = 0; if (params.containsKey("status")) { String status = getTrimValue("status"); try { istatus = Integer.parseInt(status); } catch (NumberFormatException e1) { istatus = 0; } } if (name != null && !name.isEmpty()) { // name is specified uri = request.uri(); if (istatus != 0) { uri += "&status=" + istatus; } StringBuilder builder = SpooledInformTask.buildSpooledUniqueTable(uri, name); return spooled.replace("XXXSPOOLEDXXX", builder.toString()); } else { if (istatus != 0) { uri += "&status=" + istatus; } StringBuilder builder = SpooledInformTask.buildSpooledTable(detailed, istatus, uri); return spooled.replace("XXXSPOOLEDXXX", builder.toString()); } }
Example 56
Project: karyon-master File: QueryStringDecoder.java View source code |
public io.netty.handler.codec.http.QueryStringDecoder nettyDecoder() {
return nettyDecoder;
}
Example 57
Project: dungproxy-master File: EndpointHandler.java View source code |
protected Map<String, List<String>> getRequestParam(String uri) { //默认使用UTF_8解ç ? QueryStringDecoder decoder = new QueryStringDecoder(uri); return decoder.parameters(); }
Example 58
Project: Neddy-master File: RequestConverter.java View source code |
private HttpParams convertParameters() { QueryStringDecoder decoder = new QueryStringDecoder(nettyRequest.getUri()); return new HttpParams(decoder.parameters()); }
Example 59
Project: ratpack-master File: TokenPathBinder.java View source code |
private String decodeURIComponent(String s) {
try {
return QueryStringDecoder.decodeComponent(s.replace("+", "%2B"));
} catch (IllegalArgumentException cause) {
throw new InvalidPathEncodingException(cause);
}
}
Example 60
Project: arquillian-extension-warp-master File: HttpRequestWrapper.java View source code |
@Override public Map<String, List<String>> getQueryParameters() { if (queryParameters == null) { QueryStringDecoder queryStringDecoder = new QueryStringDecoder(request.getUri()); queryParameters = queryStringDecoder.parameters(); } return Collections.unmodifiableMap(queryParameters); }
Example 61
Project: locomotive-master File: LocomotiveRequestWrapper.java View source code |
private void decodeQueryString() { QueryStringDecoder decoder = new QueryStringDecoder(request.getUri()); Set<Entry<String, List<String>>> entrySet = decoder.parameters().entrySet(); for (Entry<String, List<String>> entry : entrySet) { params.put(entry.getKey(), new Param(entry.getValue())); } }
Example 62
Project: netty-rest-master File: RakamHttpRequest.java View source code |
public Map<String, List<String>> params() {
if (qs == null) {
qs = new QueryStringDecoder(request.getUri());
}
return qs.parameters();
}