@Override public InputStream getEntityInputStream() { return acr.getEntityInputStream(); }
public ContainerRequest filter(ContainerRequest request) { ByteArrayOutputStream out = new ByteArrayOutputStream(); InputStream in = request.getEntityInputStream(); final StringBuilder b = new StringBuilder(); try {
public ContainerRequest filter(ContainerRequest request) { String contentEncoding = request.getRequestHeaders().getFirst(HttpHeaders.CONTENT_ENCODING); if (contentEncoding != null && contentEncoding.trim().equals("gzip")) { request.getRequestHeaders().remove(HttpHeaders.CONTENT_ENCODING); try { request.setEntityInputStream( new GZIPInputStream(request.getEntityInputStream())); } catch (IOException ex) { throw new ContainerException(ex); } } // Check for entity tag header 'If-None-Match' in case of accept-encoding = gzip String acceptEncoding = request.getRequestHeaders().getFirst(HttpHeaders.ACCEPT_ENCODING); String entityTag = request.getRequestHeaders().getFirst(HttpHeaders.IF_NONE_MATCH); if (acceptEncoding != null && acceptEncoding.contains("gzip") && entityTag != null) { // normalize entitytag (Note: maybe it should check whether it ends with a quotation mark ?) if (entityTag.endsWith(ENTITY_TAG_GZIP_SUFFIX_HEADER_VALUE)) { final int gzipsuffixbeginIndex = entityTag.lastIndexOf(ENTITY_TAG_GZIP_SUFFIX_HEADER_VALUE); final StringBuilder sb = new StringBuilder(); sb.append(entityTag.substring(0, gzipsuffixbeginIndex)); sb.append('\"'); request.getRequestHeaders().putSingle(HttpHeaders.IF_NONE_MATCH, sb.toString()); } else { // otherwise, remove if-none-match header request.getRequestHeaders().remove(HttpHeaders.IF_NONE_MATCH); } } return request; }
public ContainerRequest filter(ContainerRequest request) { setId(); final StringBuilder b = new StringBuilder(); printRequestLine(b, request); printRequestHeaders(b, request.getRequestHeaders()); if (rc.getFeature(FEATURE_LOGGING_DISABLE_ENTITY)) { logger.info(b.toString()); return request; } else { ByteArrayOutputStream out = new ByteArrayOutputStream(); InputStream in = request.getEntityInputStream(); try { if(in.available() > 0) { ReaderWriter.writeTo(in, out); byte[] requestEntity = out.toByteArray(); printEntity(b, requestEntity); request.setEntityInputStream(new ByteArrayInputStream(requestEntity)); } return request; } catch (IOException ex) { throw new ContainerException(ex); } finally { logger.info(b.toString()); } } }
@Override public Form getFormParameters() { if (MediaTypes.typeEquals(MediaType.APPLICATION_FORM_URLENCODED_TYPE, getMediaType())) { InputStream in = getEntityInputStream(); if (in.getClass() != ByteArrayInputStream.class) { // Buffer input ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); try { ReaderWriter.writeTo(in, byteArrayOutputStream); } catch (IOException e) { throw new IllegalArgumentException(e); } in = new ByteArrayInputStream(byteArrayOutputStream.toByteArray()); setEntityInputStream(in); } ByteArrayInputStream byteArrayInputStream = (ByteArrayInputStream) in; Form f = getEntity(Form.class); byteArrayInputStream.reset(); return f; } else { return new Form(); } }
@Override public InputStream getEntityInputStream() { return acr.getEntityInputStream(); }
@Override public InputStream getEntityInputStream() { return acr.getEntityInputStream(); }
@Override public ContainerRequest filter(ContainerRequest req) { try{ StringWriter writer = new StringWriter(); IOUtils.copy(req.getEntityInputStream(), writer, "UTF-8"); //This is your POST Body as String String body = writer.toString(); } catch (IOException e) {} return req; }
private boolean isEntityPresent(ContainerRequest cr) throws IOException { InputStream in = cr.getEntityInputStream(); if (!in.markSupported()) { in = new BufferedInputStream(in, ReaderWriter.BUFFER_SIZE); cr.setEntityInputStream(in); } in.mark(1); if (in.read() == -1) return false; else { in.reset(); return true; } }
private boolean isEntityPresent(ContainerRequest cr) throws IOException { InputStream in = cr.getEntityInputStream(); if (!in.markSupported()) { in = new BufferedInputStream(in, ReaderWriter.BUFFER_SIZE); cr.setEntityInputStream(in); } in.mark(1); if (in.read() == -1) return false; else { in.reset(); return true; } }
private boolean isEntityPresent(ContainerRequest cr) throws IOException { InputStream in = cr.getEntityInputStream(); if (!in.markSupported()) { in = new BufferedInputStream(in, ReaderWriter.BUFFER_SIZE); cr.setEntityInputStream(in); } in.mark(1); if (in.read() == -1) return false; else { in.reset(); return true; } }
@Override public ContainerRequest filter(ContainerRequest request) { InputStream entityInputStream = request.getEntityInputStream(); if (entityInputStream != null) { request.setEntityInputStream(new MaxSizeInputStream(entityInputStream, maxSize)); } return request; } }
/** * Under normal circumstances, the body of the request can only be read once, because it is * backed by an {@code InputStream}, and thus is not easily consumed multiple times. This * method gets the request content and resets it so it can be read again later if necessary. */ private byte[] safelyGetContent(HttpRequestContext request) { ContainerRequest containerRequest = (ContainerRequest) request; ByteArrayOutputStream out = new ByteArrayOutputStream(); InputStream in = containerRequest.getEntityInputStream(); try { ReaderWriter.writeTo(in, out); byte[] content = out.toByteArray(); // Reset the input stream so that it can be read again by another filter or resource containerRequest.setEntityInputStream(new ByteArrayInputStream(content)); return content; } catch (IOException ex) { throw new ContainerException(ex); } }
@Nullable @Override public String apply(@Nullable ContainerRequest request) { if (request == null) { return null; } ByteArrayOutputStream out = new ByteArrayOutputStream(); InputStream in = request.getEntityInputStream(); try { if(in.available() > 0) { ReaderWriter.writeTo(in, out); byte[] requestEntity = out.toByteArray(); request.setEntityInputStream(new ByteArrayInputStream(requestEntity)); return ReaderWriter.readFromAsString(new ByteArrayInputStream(requestEntity), request.getMediaType()); } else { return null; } } catch (IOException ex) { throw new RuntimeException(ex); } } };
/** * Under normal circumstances, the body of the request can only be read once, because it is * backed by an {@code InputStream}, and thus is not easily consumed multiple times. This * method gets the request content and resets it so it can be read again later if necessary. */ private byte[] safelyGetContent(HttpRequestContext request) { ContainerRequest containerRequest = (ContainerRequest) request; ByteArrayOutputStream out = new ByteArrayOutputStream(); InputStream in = containerRequest.getEntityInputStream(); try { byte[] content = null; if (in.available() > 0) { ReaderWriter.writeTo(in, out); content = out.toByteArray(); // Reset the input stream so that it can be read again by another filter or resource containerRequest.setEntityInputStream(new ByteArrayInputStream(content)); } return content; } catch (IOException ex) { throw new ContainerException(ex); } }
/** * Under normal circumstances, the body of the request can only be read once, because it is * backed by an {@code InputStream}, and thus is not easily consumed multiple times. This * method gets the request content and resets it so it can be read again later if necessary. */ private byte[] safelyGetContent(HttpRequestContext request) { ContainerRequest containerRequest = (ContainerRequest) request; ByteArrayOutputStream out = new ByteArrayOutputStream(); InputStream in = containerRequest.getEntityInputStream(); try { ReaderWriter.writeTo(in, out); byte[] content = out.toByteArray(); // Reset the input stream so that it can be read again by another filter or resource containerRequest.setEntityInputStream(new ByteArrayInputStream(content)); return content; } catch (IOException ex) { throw new ContainerException(ex); } }
@Override public ContainerRequest filter(ContainerRequest request) { if (predicate == null || predicate.apply(request)) { ByteArrayOutputStream out = new ByteArrayOutputStream(); InputStream in = request.getEntityInputStream(); try { if(in.available() > 0) { ReaderWriter.writeTo(in, out); byte[] requestEntity = out.toByteArray(); request.setEntityInputStream(new ByteArrayInputStream(requestEntity)); request.getProperties().put(REQUEST_ENTITY, requestEntity); } } catch (IOException ex) { throw new ContainerException(ex); } } return request; } }
public ContainerRequest filter(ContainerRequest request) { setId(); final StringBuilder b = new StringBuilder(); printRequestLine(b, request); printRequestHeaders(b, request.getRequestHeaders()); if (rc.getFeature(FEATURE_LOGGING_DISABLE_ENTITY)) { logger.info(b.toString()); return request; } else { ByteArrayOutputStream out = new ByteArrayOutputStream(); InputStream in = request.getEntityInputStream(); try { if(in.available() > 0) { ReaderWriter.writeTo(in, out); byte[] requestEntity = out.toByteArray(); printEntity(b, requestEntity); request.setEntityInputStream(new ByteArrayInputStream(requestEntity)); } return request; } catch (IOException ex) { throw new ContainerException(ex); } finally { logger.info(b.toString()); } } }
@Override public Form getFormParameters() { if (MediaTypes.typeEquals(MediaType.APPLICATION_FORM_URLENCODED_TYPE, getMediaType())) { InputStream in = getEntityInputStream(); if (in.getClass() != ByteArrayInputStream.class) { // Buffer input ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); try { ReaderWriter.writeTo(in, byteArrayOutputStream); } catch (IOException e) { throw new IllegalArgumentException(e); } in = new ByteArrayInputStream(byteArrayOutputStream.toByteArray()); setEntityInputStream(in); } ByteArrayInputStream byteArrayInputStream = (ByteArrayInputStream) in; Form f = getEntity(Form.class); byteArrayInputStream.reset(); return f; } else { return new Form(); } }
@Override public Form getFormParameters() { if (MediaTypes.typeEquals(MediaType.APPLICATION_FORM_URLENCODED_TYPE, getMediaType())) { InputStream in = getEntityInputStream(); if (in.getClass() != ByteArrayInputStream.class) { // Buffer input ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); try { ReaderWriter.writeTo(in, byteArrayOutputStream); } catch (IOException e) { throw new IllegalArgumentException(e); } in = new ByteArrayInputStream(byteArrayOutputStream.toByteArray()); setEntityInputStream(in); } ByteArrayInputStream byteArrayInputStream = (ByteArrayInputStream) in; Form f = getEntity(Form.class); byteArrayInputStream.reset(); return f; } else { return new Form(); } }