James Moger
2011-06-01 f1720ca884bc3fa9da1288ad955e46f165aa4168
src/com/gitblit/DownloadZipServlet.java
@@ -1,3 +1,18 @@
/*
 * Copyright 2011 gitblit.com.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.gitblit;
import java.util.Date;
@@ -11,36 +26,30 @@
import org.slf4j.LoggerFactory;
import com.gitblit.Constants.AccessRestrictionType;
import com.gitblit.models.RepositoryModel;
import com.gitblit.utils.JGitUtils;
import com.gitblit.utils.StringUtils;
import com.gitblit.wicket.models.RepositoryModel;
public class DownloadZipServlet extends HttpServlet {
   public static String asLink(String baseURL, String repository, String objectId, String path) {
      return baseURL + (baseURL.endsWith("/") ? "" : "/") + "zip?r=" + repository + (path == null ? "" : ("&p=" + path)) + (objectId == null ? "" : ("&h=" + objectId));
   }
   private static final long serialVersionUID = 1L;
   private final static Logger logger = LoggerFactory.getLogger(DownloadZipServlet.class);
   private transient Logger logger = LoggerFactory.getLogger(DownloadZipServlet.class);
   public DownloadZipServlet() {
      super();
   }
   @Override
   protected void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, java.io.IOException {
      processRequest(request, response);
   public static String asLink(String baseURL, String repository, String objectId, String path) {
      return baseURL + (baseURL.endsWith("/") ? "" : "/") + "zip?r=" + repository
            + (path == null ? "" : ("&p=" + path))
            + (objectId == null ? "" : ("&h=" + objectId));
   }
   @Override
   protected void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, java.io.IOException {
      processRequest(request, response);
   }
   private void processRequest(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, java.io.IOException {
      if (!GitBlit.self().settings().getBoolean(Keys.web.allowZipDownloads, true)) {
   private void processRequest(javax.servlet.http.HttpServletRequest request,
         javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException,
         java.io.IOException {
      if (!GitBlit.getBoolean(Keys.web.allowZipDownloads, true)) {
         logger.warn("Zip downloads are disabled");
         response.sendError(HttpServletResponse.SC_FORBIDDEN);
         return;
@@ -81,7 +90,8 @@
         String contentType = "application/octet-stream";
         response.setContentType(contentType + "; charset=" + response.getCharacterEncoding());
         // response.setContentLength(attachment.getFileSize());
         response.setHeader("Content-Disposition", "attachment; filename=\"" + name + ".zip" + "\"");
         response.setHeader("Content-Disposition", "attachment; filename=\"" + name + ".zip"
               + "\"");
         response.setDateHeader("Last-Modified", date.getTime());
         response.setHeader("Cache-Control", "no-cache");
         response.setHeader("Pragma", "no-cache");
@@ -97,4 +107,18 @@
         logger.error("Failed to write attachment to client", t);
      }
   }
   @Override
   protected void doPost(javax.servlet.http.HttpServletRequest request,
         javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException,
         java.io.IOException {
      processRequest(request, response);
   }
   @Override
   protected void doGet(javax.servlet.http.HttpServletRequest request,
         javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException,
         java.io.IOException {
      processRequest(request, response);
   }
}