List of usage examples for io.netty.handler.codec.http QueryStringDecoder parameters
public Map<String, List<String>> parameters()
From source file:org.traccar.protocol.PathAwayProtocolDecoder.java
License:Apache License
@Override protected Object decode(Channel channel, SocketAddress remoteAddress, Object msg) throws Exception { FullHttpRequest request = (FullHttpRequest) msg; QueryStringDecoder decoder = new QueryStringDecoder(request.uri()); DeviceSession deviceSession = getDeviceSession(channel, remoteAddress, decoder.parameters().get("UserName").get(0)); if (deviceSession == null) { return null; }//w w w.j a v a2 s. c om Parser parser = new Parser(PATTERN, decoder.parameters().get("LOC").get(0)); if (!parser.matches()) { return null; } Position position = new Position(getProtocolName()); position.setDeviceId(deviceSession.getDeviceId()); position.setTime(parser.nextDateTime(Parser.DateTimeFormat.DMY_HMS)); position.setValid(true); position.setLatitude(parser.nextDouble(0)); position.setLongitude(parser.nextDouble(0)); position.setAltitude(parser.nextDouble(0)); position.setSpeed(parser.nextDouble(0)); position.setCourse(parser.nextDouble(0)); if (channel != null) { FullHttpResponse response = new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.OK); channel.writeAndFlush(new NetworkMessage(response, remoteAddress)) .addListener(ChannelFutureListener.CLOSE); } return position; }
From source file:org.traccar.protocol.PiligrimProtocolDecoder.java
License:Apache License
@Override protected Object decode(Channel channel, SocketAddress remoteAddress, Object msg) throws Exception { FullHttpRequest request = (FullHttpRequest) msg; String uri = request.uri();//from www . jav a 2 s .c o m if (uri.startsWith("/config")) { sendResponse(channel, "CONFIG: OK"); } else if (uri.startsWith("/addlog")) { sendResponse(channel, "ADDLOG: OK"); } else if (uri.startsWith("/inform")) { sendResponse(channel, "INFORM: OK"); } else if (uri.startsWith("/bingps")) { sendResponse(channel, "BINGPS: OK"); QueryStringDecoder decoder = new QueryStringDecoder(request.uri()); DeviceSession deviceSession = getDeviceSession(channel, remoteAddress, decoder.parameters().get("imei").get(0)); if (deviceSession == null) { return null; } List<Position> positions = new LinkedList<>(); ByteBuf buf = request.content(); while (buf.readableBytes() > 2) { buf.readUnsignedByte(); // header int type = buf.readUnsignedByte(); buf.readUnsignedByte(); // length if (type == MSG_GPS || type == MSG_GPS_SENSORS) { Position position = new Position(getProtocolName()); position.setDeviceId(deviceSession.getDeviceId()); DateBuilder dateBuilder = new DateBuilder().setDay(buf.readUnsignedByte()) .setMonth(buf.getByte(buf.readerIndex()) & 0x0f) .setYear(2010 + (buf.readUnsignedByte() >> 4)) .setTime(buf.readUnsignedByte(), buf.readUnsignedByte(), buf.readUnsignedByte()); position.setTime(dateBuilder.getDate()); double latitude = buf.readUnsignedByte(); latitude += buf.readUnsignedByte() / 60.0; latitude += buf.readUnsignedByte() / 6000.0; latitude += buf.readUnsignedByte() / 600000.0; double longitude = buf.readUnsignedByte(); longitude += buf.readUnsignedByte() / 60.0; longitude += buf.readUnsignedByte() / 6000.0; longitude += buf.readUnsignedByte() / 600000.0; int flags = buf.readUnsignedByte(); if (BitUtil.check(flags, 0)) { latitude = -latitude; } if (BitUtil.check(flags, 1)) { longitude = -longitude; } position.setLatitude(latitude); position.setLongitude(longitude); int satellites = buf.readUnsignedByte(); position.set(Position.KEY_SATELLITES, satellites); position.setValid(satellites >= 3); position.setSpeed(buf.readUnsignedByte()); double course = buf.readUnsignedByte() << 1; course += (flags >> 2) & 1; course += buf.readUnsignedByte() / 100.0; position.setCourse(course); if (type == MSG_GPS_SENSORS) { double power = buf.readUnsignedByte(); power += buf.readUnsignedByte() << 8; position.set(Position.KEY_POWER, power * 0.01); double battery = buf.readUnsignedByte(); battery += buf.readUnsignedByte() << 8; position.set(Position.KEY_BATTERY, battery * 0.01); buf.skipBytes(6); } positions.add(position); } else if (type == MSG_EVENTS) { buf.skipBytes(13); } } return positions; } return null; }
From source file:org.waarp.gateway.ftp.adminssl.HttpSslHandler.java
License:Open Source License
private void getParams() { if (request.method() == HttpMethod.GET) { params = null;//from ww w . j a va 2 s. c o m } 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; } } }
From source file:org.waarp.gateway.kernel.http.HttpRequestHandler.java
License:Open Source License
/** * set values from URI//from w ww . ja v a 2 s .co m * * @throws HttpIncorrectRequestException */ protected void getUriArgs() throws HttpIncorrectRequestException { QueryStringDecoder decoderQuery = new QueryStringDecoder(request.uri()); Map<String, List<String>> uriAttributes = decoderQuery.parameters(); Set<String> attributes = uriAttributes.keySet(); for (String name : attributes) { List<String> values = uriAttributes.get(name); if (values != null) { if (values.size() == 1) { // only one element is allowed httpPage.setValue(businessRequest, name, values.get(0), FieldPosition.URL); } else if (values.size() > 1) { // more than one element is not allowed values.clear(); values = null; attributes = null; uriAttributes = null; decoderQuery = null; throw new HttpIncorrectRequestException("Too many values for " + name); } values.clear(); } values = null; } attributes = null; uriAttributes = null; decoderQuery = null; }
From source file:org.waarp.gateway.kernel.rest.RestArgument.java
License:Open Source License
/** * Set values according to the request URI * /*from w ww . j av a 2 s. c om*/ * @param request */ public void setRequest(HttpRequest request) { arguments.put(REST_ROOT_FIELD.ARG_HASBODY.field, (request instanceof FullHttpRequest && ((FullHttpRequest) request).content() != Unpooled.EMPTY_BUFFER)); arguments.put(REST_ROOT_FIELD.ARG_METHOD.field, request.method().name()); QueryStringDecoder decoderQuery = new QueryStringDecoder(request.uri()); String path = decoderQuery.path(); arguments.put(REST_ROOT_FIELD.ARG_PATH.field, path); // compute path main uri String basepath = path; int pos = basepath.indexOf('/'); if (pos >= 0) { if (pos == 0) { int pos2 = basepath.indexOf('/', 1); if (pos2 < 0) { basepath = basepath.substring(1); } else { basepath = basepath.substring(1, pos2); } } else { basepath = basepath.substring(0, pos); } } arguments.put(REST_ROOT_FIELD.ARG_BASEPATH.field, basepath); // compute sub path args if (pos == 0) { pos = path.indexOf('/', 1); } if (pos >= 0) { int pos2 = path.indexOf('/', pos + 1); if (pos2 > 0) { ArrayNode array = arguments.putArray(REST_ROOT_FIELD.ARGS_SUBPATH.field); while (pos2 > 0) { array.add(path.substring(pos + 1, pos2)); pos = pos2; pos2 = path.indexOf('/', pos + 1); } } pos2 = path.indexOf('?', pos + 1); if (pos2 > 0 && pos2 > pos + 1) { ArrayNode array = (ArrayNode) arguments.get(REST_ROOT_FIELD.ARGS_SUBPATH.field); if (array == null) { array = arguments.putArray(REST_ROOT_FIELD.ARGS_SUBPATH.field); } array.add(path.substring(pos + 1, pos2)); } else { String last = path.substring(pos + 1); if (!last.isEmpty()) { ArrayNode array = (ArrayNode) arguments.get(REST_ROOT_FIELD.ARGS_SUBPATH.field); if (array == null) { array = arguments.putArray(REST_ROOT_FIELD.ARGS_SUBPATH.field); } array.add(last); } } } Map<String, List<String>> map = decoderQuery.parameters(); ObjectNode node = arguments.putObject(REST_GROUP.ARGS_URI.group); for (String key : map.keySet()) { if (key.equalsIgnoreCase(REST_ROOT_FIELD.ARG_X_AUTH_KEY.field)) { arguments.put(REST_ROOT_FIELD.ARG_X_AUTH_KEY.field, map.get(key).get(0)); continue; } if (key.equalsIgnoreCase(REST_ROOT_FIELD.ARG_X_AUTH_USER.field)) { arguments.put(REST_ROOT_FIELD.ARG_X_AUTH_USER.field, map.get(key).get(0)); continue; } if (key.equalsIgnoreCase(REST_ROOT_FIELD.ARG_X_AUTH_TIMESTAMP.field)) { arguments.put(REST_ROOT_FIELD.ARG_X_AUTH_TIMESTAMP.field, map.get(key).get(0)); continue; } List<String> list = map.get(key); if (list.size() > 1) { ArrayNode array = node.putArray(key); for (String val : map.get(key)) { array.add(val); } } else if (list.isEmpty()) { node.putNull(key); } else { //1 node.put(key, list.get(0)); } } }
From source file:org.waarp.gateway.kernel.rest.RestArgument.java
License:Open Source License
/** * The encoder is completed with extra necessary URI part containing ARG_X_AUTH_TIMESTAMP & ARG_X_AUTH_KEY * /*ww w. j a v a 2 s. co m*/ * @param hmacSha256 * SHA-256 key to create the signature * @param encoder * @param user * might be null * @param extraKey * might be null * @return an array of 2 value in order ARG_X_AUTH_TIMESTAMP and ARG_X_AUTH_KEY * @throws HttpInvalidAuthenticationException * if the computation of the authentication failed */ public static String[] getBaseAuthent(HmacSha256 hmacSha256, QueryStringEncoder encoder, String user, String extraKey) throws HttpInvalidAuthenticationException { QueryStringDecoder decoderQuery = new QueryStringDecoder(encoder.toString()); Map<String, List<String>> map = decoderQuery.parameters(); TreeMap<String, String> treeMap = new TreeMap<String, String>(); for (Entry<String, List<String>> entry : map.entrySet()) { String keylower = entry.getKey().toLowerCase(); List<String> values = entry.getValue(); if (values != null && !values.isEmpty()) { String last = values.get(values.size() - 1); treeMap.put(keylower, last); } } DateTime date = new DateTime(); treeMap.put(REST_ROOT_FIELD.ARG_X_AUTH_TIMESTAMP.field.toLowerCase(), date.toString()); if (user != null) { treeMap.put(REST_ROOT_FIELD.ARG_X_AUTH_USER.field.toLowerCase(), user); } try { String key = computeKey(hmacSha256, extraKey, treeMap, decoderQuery.path()); String[] result = { date.toString(), key }; return result; /* encoder.addParam(REST_ROOT_FIELD.ARG_X_AUTH_TIMESTAMP.field, date.toString()); encoder.addParam(REST_ROOT_FIELD.ARG_X_AUTH_KEY.field, key); */ } catch (Exception e) { throw new HttpInvalidAuthenticationException(e); } }
From source file:org.waarp.openr66.protocol.http.adminssl.HttpResponsiveSslHandler.java
License:Open Source License
private String Spooled(boolean detailed) { // XXXSPOOLEDXXX if (request.method() == HttpMethod.POST) { getParams();// w w w .j a v a 2 s. co m } String spooled = REQUEST.Spooled.read(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 (spooled.contains("XXXSPOOLEDXXX")) { 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()); } } if (name != null && !name.isEmpty()) { // name is specified uri = request.uri(); if (istatus != 0) { uri += "&status=" + istatus; } String builder = SpooledInformTask.buildSpooledUniqueJson(uri, name); return spooled.replace(XXXDATAJSONXXX, builder); } else { if (istatus != 0) { uri += "&status=" + istatus; } String builder = SpooledInformTask.buildSpooledJson(detailed, istatus, uri); return spooled.replace(XXXDATAJSONXXX, builder); } }
From source file:org.waarp.openr66.protocol.http.adminssl.HttpResponsiveSslHandler.java
License:Open Source License
private void getParams() { if (request.method() == HttpMethod.GET) { params = null;/*w w w .j a va2 s . c o m*/ } else if (request.method() == HttpMethod.POST) { Map<String, List<String>> paramsOld = params; ByteBuf content = request.content(); if (content.isReadable()) { String param = content.toString(WaarpStringUtils.UTF8); QueryStringDecoder queryStringDecoder2 = new QueryStringDecoder("/?" + param); params = queryStringDecoder2.parameters(); if (params.containsKey(sREFRESH)) { List<String> parms = params.get("ACTION"); if (parms != null) { String parm = parms.get(0); if ("Disabling".equalsIgnoreCase(parm)) { setREFRESH(0); } else { String snb = getTrimValue(sREFRESH); if (snb != null) { try { int old = getREFRESH(); setREFRESH(Integer.parseInt(snb) * 1000); if (getREFRESH() < 0) { setREFRESH(old); } } catch (Exception e1) { } } } } params = paramsOld; return; } if (params.containsKey(sLIMITROW)) { String snb = getTrimValue(sLIMITROW); if (snb != null) { try { int old = getLIMITROW(); setLIMITROW(Integer.parseInt(snb)); if (getLIMITROW() < 5) { setLIMITROW(old); } } catch (Exception e1) { } } } } else { params = null; } } }
From source file:org.waarp.openr66.protocol.http.adminssl.HttpSslHandler.java
License:Open Source License
private String Spooled(boolean detailed) { // XXXSPOOLEDXXX String spooled = REQUEST.Spooled.readFileUnique(this); String uri = null;/*from w w w . ja va2s . c om*/ 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()); } }
From source file:org.waarp.openr66.protocol.http.adminssl.HttpSslHandler.java
License:Open Source License
private void getParams() { if (request.method() == HttpMethod.GET) { params = null;// w ww . j a va 2s . c o m } 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(); if (params.containsKey(sLIMITROW)) { String snb = getTrimValue(sLIMITROW); if (snb != null) { try { int old = getLIMITROW(); setLIMITROW(Integer.parseInt(snb)); if (getLIMITROW() < 5) { setLIMITROW(old); } } catch (Exception e1) { } } } } else { params = null; } } }