/** * Send an error to the Git client or browser. * <p> * Server implementors may use this method to send customized error messages * to a Git protocol client using an HTTP 200 OK response with the error * embedded in the payload. If the request was not issued by a Git client, * an HTTP response code is returned instead. * * @param req * current request. * @param res * current response. * @param httpStatus * HTTP status code to set if the client is not a Git client. * @throws IOException * the response cannot be sent. */ public static void sendError(HttpServletRequest req, HttpServletResponse res, int httpStatus) throws IOException { sendError(req, res, httpStatus, null); }
/** * Send an error to the Git client or browser. * <p> * Server implementors may use this method to send customized error messages * to a Git protocol client using an HTTP 200 OK response with the error * embedded in the payload. If the request was not issued by a Git client, * an HTTP response code is returned instead. * * @param req * current request. * @param res * current response. * @param httpStatus * HTTP status code to set if the client is not a Git client. * @throws IOException * the response cannot be sent. */ public static void sendError(HttpServletRequest req, HttpServletResponse res, int httpStatus) throws IOException { sendError(req, res, httpStatus, null); }
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest req = (HttpServletRequest) request; HttpServletResponse rsp = (HttpServletResponse) response; ReceivePack rp; try { rp = receivePackFactory.create(req, getRepository(req)); } catch (ServiceNotAuthorizedException e) { rsp.sendError(SC_UNAUTHORIZED); return; } catch (ServiceNotEnabledException e) { sendError(req, rsp, SC_FORBIDDEN); return; } try { req.setAttribute(ATTRIBUTE_HANDLER, rp); chain.doFilter(req, rsp); } finally { req.removeAttribute(ATTRIBUTE_HANDLER); } }
, ATTRIBUTE_REPOSITORY , getClass().getName())); sendError(req, res, SC_INTERNAL_SERVER_ERROR); return; name = name.substring(1); if (name == null || name.length() == 0) { sendError(req, res, SC_NOT_FOUND); return; db = resolver.open(req, name); } catch (RepositoryNotFoundException e) { sendError(req, res, SC_NOT_FOUND); return; } catch (ServiceNotEnabledException e) { sendError(req, res, SC_FORBIDDEN); return; } catch (ServiceNotAuthorizedException e) { return; } catch (ServiceMayNotContinueException e) { sendError(req, res, SC_FORBIDDEN, e.getMessage()); return;
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest req = (HttpServletRequest) request; HttpServletResponse rsp = (HttpServletResponse) response; UploadPack rp; try { rp = uploadPackFactory.create(req, getRepository(req)); } catch (ServiceNotAuthorizedException e) { rsp.sendError(SC_UNAUTHORIZED); return; } catch (ServiceNotEnabledException e) { sendError(req, rsp, SC_FORBIDDEN); return; } try { req.setAttribute(ATTRIBUTE_HANDLER, rp); chain.doFilter(req, rsp); } finally { req.removeAttribute(ATTRIBUTE_HANDLER); } }
, ATTRIBUTE_REPOSITORY , getClass().getName())); sendError(req, res, SC_INTERNAL_SERVER_ERROR); return; name = name.substring(1); if (name == null || name.length() == 0) { sendError(req, res, SC_NOT_FOUND); return; db = resolver.open(req, name); } catch (RepositoryNotFoundException e) { sendError(req, res, SC_NOT_FOUND); return; } catch (ServiceNotEnabledException e) { sendError(req, res, SC_FORBIDDEN, e.getMessage()); return; } catch (ServiceNotAuthorizedException e) { return; } catch (ServiceMayNotContinueException e) { sendError(req, res, e.getStatusCode(), e.getMessage()); return;
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest req = (HttpServletRequest) request; HttpServletResponse rsp = (HttpServletResponse) response; UploadPack rp; try { rp = uploadPackFactory.create(req, getRepository(req)); } catch (ServiceNotAuthorizedException e) { rsp.sendError(SC_UNAUTHORIZED, e.getMessage()); return; } catch (ServiceNotEnabledException e) { sendError(req, rsp, SC_FORBIDDEN, e.getMessage()); return; } try { req.setAttribute(ATTRIBUTE_HANDLER, rp); chain.doFilter(req, rsp); } finally { req.removeAttribute(ATTRIBUTE_HANDLER); } }
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest req = (HttpServletRequest) request; HttpServletResponse rsp = (HttpServletResponse) response; ReceivePack rp; try { rp = receivePackFactory.create(req, getRepository(req)); } catch (ServiceNotAuthorizedException e) { rsp.sendError(SC_UNAUTHORIZED, e.getMessage()); return; } catch (ServiceNotEnabledException e) { sendError(req, rsp, SC_FORBIDDEN, e.getMessage()); return; } try { req.setAttribute(ATTRIBUTE_HANDLER, rp); chain.doFilter(req, rsp); } finally { req.removeAttribute(ATTRIBUTE_HANDLER); } }
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { final HttpServletRequest req = (HttpServletRequest) request; final HttpServletResponse res = (HttpServletResponse) response; if (svc.equals(req.getParameter("service"))) { final Repository db = getRepository(req); try { begin(req, db); } catch (ServiceNotAuthorizedException e) { res.sendError(SC_UNAUTHORIZED); return; } catch (ServiceNotEnabledException e) { sendError(req, res, SC_FORBIDDEN); return; } try { if (filters.length == 0) service(req, response); else new Chain().doFilter(request, response); } finally { req.removeAttribute(ATTRIBUTE_HANDLER); } } else { chain.doFilter(request, response); } }
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { final HttpServletRequest req = (HttpServletRequest) request; final HttpServletResponse res = (HttpServletResponse) response; if (svc.equals(req.getParameter("service"))) { final Repository db = getRepository(req); try { begin(req, db); } catch (ServiceNotAuthorizedException e) { res.sendError(SC_UNAUTHORIZED, e.getMessage()); return; } catch (ServiceNotEnabledException e) { sendError(req, res, SC_FORBIDDEN, e.getMessage()); return; } try { if (filters.length == 0) service(req, response); else new Chain().doFilter(request, response); } finally { req.removeAttribute(ATTRIBUTE_HANDLER); } } else { chain.doFilter(request, response); } }
@Override protected void sendNotEnoughPrivilegesError(HttpServletRequest request, HttpServletResponse response) throws IOException { if (GitUtil.isGitClient(request)) { GitSmartHttpTools.sendError(request, response, HttpServletResponse.SC_FORBIDDEN, ClientMessages.get(request).notEnoughPrivileges()); } else { super.sendNotEnoughPrivilegesError(request, response); } }
GitSmartHttpTools.sendError(req, rsp, SC_BAD_REQUEST, "\n\n" + HttpServerText.get().clientHas175ChunkedEncodingBug); return; } else if (!rsp.isCommitted()) { rsp.reset(); sendError(req, rsp, SC_FORBIDDEN, e.getMessage()); if (!rsp.isCommitted()) { rsp.reset(); sendError(req, rsp, SC_INTERNAL_SERVER_ERROR);
private void service(ServletRequest request, ServletResponse response) throws IOException { final HttpServletRequest req = (HttpServletRequest) request; final HttpServletResponse res = (HttpServletResponse) response; final SmartOutputStream buf = new SmartOutputStream(req, res, true); try { res.setContentType(infoRefsResultType(svc)); final PacketLineOut out = new PacketLineOut(buf); out.writeString("# service=" + svc + "\n"); out.end(); advertise(req, new PacketLineOutRefAdvertiser(out)); buf.close(); } catch (ServiceNotAuthorizedException e) { res.sendError(SC_UNAUTHORIZED); } catch (ServiceNotEnabledException e) { sendError(req, res, SC_FORBIDDEN); } catch (ServiceMayNotContinueException e) { if (e.isOutput()) buf.close(); else sendError(req, res, SC_FORBIDDEN, e.getMessage()); } }
GitSmartHttpTools.sendError(req, rsp, SC_BAD_REQUEST, "\n\n" + HttpServerText.get().clientHas175ChunkedEncodingBug); return; } else if (!rsp.isCommitted()) { rsp.reset(); sendError(req, rsp, e.getStatusCode(), e.getMessage()); if (!rsp.isCommitted()) { rsp.reset(); sendError(req, rsp, SC_INTERNAL_SERVER_ERROR);
@Sessional @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest httpRequest = (HttpServletRequest) request; HttpServletResponse httpResponse = (HttpServletResponse) response; try { if (GitSmartHttpTools.isInfoRefs(httpRequest)) { if (oneDev.isReady()) processRefs(httpRequest, httpResponse); else throw new GitException("Server is not ready"); } else if (GitSmartHttpTools.isReceivePack(httpRequest) || GitSmartHttpTools.isUploadPack(httpRequest)) { if (oneDev.isReady()) processPacks(httpRequest, httpResponse); else throw new GitException("Server is not ready"); } else { chain.doFilter(request, response); } } catch (GitException|InterruptedException|ExecutionException e) { logger.error("Error serving git request", e); GitSmartHttpTools.sendError(httpRequest, httpResponse, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.getMessage()); } }
private void service(ServletRequest request, ServletResponse response) throws IOException { final HttpServletRequest req = (HttpServletRequest) request; final HttpServletResponse res = (HttpServletResponse) response; final SmartOutputStream buf = new SmartOutputStream(req, res, true); try { res.setContentType(infoRefsResultType(svc)); final PacketLineOut out = new PacketLineOut(buf); out.writeString("# service=" + svc + "\n"); out.end(); advertise(req, new PacketLineOutRefAdvertiser(out)); buf.close(); } catch (ServiceNotAuthorizedException e) { res.sendError(SC_UNAUTHORIZED, e.getMessage()); } catch (ServiceNotEnabledException e) { sendError(req, res, SC_FORBIDDEN, e.getMessage()); } catch (ServiceMayNotContinueException e) { if (e.isOutput()) buf.close(); else sendError(req, res, e.getStatusCode(), e.getMessage()); } }