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();
}