if (!datas.isEmpty()) { for (InterfaceHttpData data : datas) { LOG.trace("Multipart1 name " + data.getName() + " type " + data.getHttpDataType().name()); if (data.getHttpDataType() == HttpDataType.Attribute) { Attribute attribute = (Attribute) data; if (LOG.isTraceEnabled()) { LOG.trace("Multipart name " + data.getName() + " type " + data.getHttpDataType().name() + " Signature set. size: " + requestSignature.length); LOG.trace(MessageEncoderDecoder.bytesToHex(requestSignature)); if (LOG.isTraceEnabled()) { LOG.trace("Multipart name " + data.getName() + " type " + data.getHttpDataType().name() + " requestKey set. size: " + requestKey.length); LOG.trace(MessageEncoderDecoder.bytesToHex(requestKey)); if (LOG.isTraceEnabled()) { LOG.trace("Multipart name " + data.getName() + " type " + data.getHttpDataType().name() + " requestData set. size: " + requestData.length); LOG.trace(MessageEncoderDecoder.bytesToHex(requestData));
InterfaceHttpData data = decoder.next(); while (data != null) { if (data.getHttpDataType().equals(InterfaceHttpData.HttpDataType.Attribute)) { List<String> values = attributes.get(data.getName()); if (values == null) { throw uncheck(e); } else if (data.getHttpDataType().equals(InterfaceHttpData.HttpDataType.FileUpload)) { List<UploadedFile> values = files.computeIfAbsent(data.getName(), k -> new ArrayList<>(1)); try {
} else { log.warn(String.format("Unknown form type encountered Class: %s,data type:%s,name:%s", data.getClass().getName(), data.getHttpDataType().name(), data.getName()));
@Override public CompletableFuture<ResponseInfo<String>> execute(RequestInfo<String> request, Executor longRunningTaskExecutor, ChannelHandlerContext ctx) { List<String> hashesFound = new ArrayList<>(); for (InterfaceHttpData multipartData : request.getMultipartParts()) { String name = multipartData.getName(); byte[] payloadBytes; try { payloadBytes = ((HttpData)multipartData).get(); } catch (IOException e) { throw new RuntimeException(e); } String filename = null; switch (multipartData.getHttpDataType()) { case Attribute: // Do nothing - filename stays null break; case FileUpload: filename = ((FileUpload)multipartData).getFilename(); break; default: throw new RuntimeException("Unsupported multipart type: " + multipartData.getHttpDataType().name()); } hashesFound.add(getHashForMultipartPayload(name, filename, payloadBytes)); } return CompletableFuture.completedFuture(ResponseInfo.newBuilder(StringUtils.join(hashesFound, ",")).build()); }
public static IServletRequest create(FullHttpRequest request) throws IOException { List<String> names = new ArrayList<>(); List<String> values = new ArrayList<>(); HttpPostRequestDecoder decoder = new HttpPostRequestDecoder(request); try { List<InterfaceHttpData> bodyHttpDatas = decoder.getBodyHttpDatas(); for (InterfaceHttpData data : bodyHttpDatas) { if (data.getHttpDataType().equals(InterfaceHttpData.HttpDataType.Attribute)) { Attribute attr = (MixedAttribute) data; names.add(data.getName()); values.add(attr.getValue()); } } } finally { decoder.destroy(); } return new FormUrlEncodedRequest(request, new QueryStringDecoder(request.uri()).parameters(), names, values); }
@SuppressWarnings("unchecked") private I decodeMultipart() { HttpPostMultipartRequestDecoder decoder = new HttpPostMultipartRequestDecoder(msg.request()); List<com.simplyti.service.api.multipart.FileUpload> files = decoder.getBodyHttpDatas().stream() .filter(data->data.getHttpDataType().equals(HttpDataType.FileUpload)) .map(FileUpload.class::cast) .map(data->new com.simplyti.service.api.multipart.FileUpload(data.content().retain(),data.getFilename())) .collect(Collectors.toList()); run(decoder::destroy); return (I) files; }
if (data != null) { try { logger.info("BODY FileUpload: " + data.getHttpDataType().name() + ": " + data); if (data.getHttpDataType() == HttpDataType.FileUpload) { FileUpload fileUpload = (FileUpload) data;