private static byte[] sendInit(byte[] content, final HttpServletRequest req, final HttpServletResponse rsp) throws IOException { rsp.setHeader(HDR_ETAG, etag(content)); if (256 < content.length && acceptsGzipEncoding(req)) { content = compress(content); rsp.setHeader(HDR_CONTENT_ENCODING, ENCODING_GZIP); } rsp.setContentLength(content.length); return content; }
/** * Consume the entire request body, if one was supplied. * * @param req * the request whose body must be consumed. */ public static void consumeRequestBody(HttpServletRequest req) { if (0 < req.getContentLength() || isChunked(req)) { try { consumeRequestBody(req.getInputStream()); } catch (IOException e) { // Ignore any errors obtaining the input stream. } } }
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { if (isLocal(getRepository(request))) chain.doFilter(request, response); else ((HttpServletResponse) response).sendError(SC_FORBIDDEN); }
rsp.setContentType(UPLOAD_PACK_RESULT_TYPE); up.upload(getInputStream(req), out, null); out.close(); consumeRequestBody(req); out.close(); } else if (!rsp.isCommitted()) { HttpServerText.get().internalErrorDuringUploadPack, e.getCause()); consumeRequestBody(req); out.close();
rsp.setContentType(RECEIVE_PACK_RESULT_TYPE); rp.receive(getInputStream(req), out, null); out.close(); } catch (CorruptObjectException e ) { HttpServerText.get().receivedCorruptObject, e.getMessage(), ServletUtils.identify(rp.getRepository()))); consumeRequestBody(req); out.close(); consumeRequestBody(req); out.close();
static boolean acceptsGzipEncoding(final HttpServletRequest req) { return acceptsGzipEncoding(req.getHeader(HDR_ACCEPT_ENCODING)); }
@Override public void run() { try { new UploadCommand(gitDir, environments) .input(ServletUtils.getInputStream(request)) .output(response.getOutputStream()) .call(); } catch (IOException e) { throw new RuntimeException(e); } }
private static void send(HttpServletRequest req, HttpServletResponse res, String type, byte[] buf) throws IOException { ServletUtils.consumeRequestBody(req); res.setStatus(HttpServletResponse.SC_OK); res.setContentType(type); res.setContentLength(buf.length); OutputStream os = res.getOutputStream(); try { os.write(buf); } finally { os.close(); } }
public void doGet(final HttpServletRequest req, final HttpServletResponse rsp) throws IOException { try { rsp.setContentType(HttpSupport.TEXT_PLAIN); send(read(req), req, rsp); } catch (FileNotFoundException noFile) { rsp.sendError(SC_NOT_FOUND); } }
public void doGet(final HttpServletRequest req, final HttpServletResponse rsp) throws IOException { sendPlainText(packList(req), req, rsp); }
/** * Check if a Git client has the known chunked request body encoding bug. * <p> * Git 1.7.5 contains a unique bug where chunked requests are malformed. * This applies to both fetch and push. * * @param version * parsed version of the Git client software. * @param request * incoming HTTP request. * @return true if the client has the chunked encoding bug. */ public static boolean hasChunkedEncodingRequestBug( int[] version, HttpServletRequest request) { return compare(version, v1_7_5) == 0 && isChunked(request); }
content = sendInit(content, req, rsp); final OutputStream out = rsp.getOutputStream(); try {
rsp.setContentType(UPLOAD_PACK_RESULT_TYPE); up.upload(getInputStream(req), out, null); out.close(); consumeRequestBody(req); out.close(); } else if (!rsp.isCommitted()) { consumeRequestBody(req); out.close();
static boolean acceptsGzipEncoding(final HttpServletRequest req) { return acceptsGzipEncoding(req.getHeader(HDR_ACCEPT_ENCODING)); }
@Override public void run() { try { new ReceiveCommand(gitDir, environments) .input(ServletUtils.getInputStream(request)) .output(response.getOutputStream()) .call(); } catch (IOException e) { throw new RuntimeException(e); } }
private static void send(HttpServletRequest req, HttpServletResponse res, String type, byte[] buf) throws IOException { ServletUtils.consumeRequestBody(req); res.setStatus(HttpServletResponse.SC_OK); res.setContentType(type); res.setContentLength(buf.length); OutputStream os = res.getOutputStream(); try { os.write(buf); } finally { os.close(); } }
public void doGet(final HttpServletRequest req, final HttpServletResponse rsp) throws IOException { try { rsp.setContentType(HttpSupport.TEXT_PLAIN); send(read(req), req, rsp); } catch (FileNotFoundException noFile) { rsp.sendError(SC_NOT_FOUND); } }
public void doGet(final HttpServletRequest req, final HttpServletResponse rsp) throws IOException { sendPlainText(packList(req), req, rsp); }
/** * Check if a Git client has the known chunked request body encoding bug. * <p> * Git 1.7.5 contains a unique bug where chunked requests are malformed. * This applies to both fetch and push. * * @param version * parsed version of the Git client software. * @param request * incoming HTTP request. * @return true if the client has the chunked encoding bug. */ public static boolean hasChunkedEncodingRequestBug( int[] version, HttpServletRequest request) { return compare(version, v1_7_5) == 0 && isChunked(request); }
content = sendInit(content, req, rsp); final OutputStream out = rsp.getOutputStream(); try {