James Moger
2011-04-13 94b96b5a98bef254128ccc4f5fc0e0c4376324e4
src/com/gitblit/wicket/GitBlitWebApp.java
@@ -5,6 +5,7 @@
import java.util.Date;
import java.util.List;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import org.apache.wicket.Application;
@@ -13,6 +14,7 @@
import org.apache.wicket.Response;
import org.apache.wicket.Session;
import org.apache.wicket.protocol.http.WebApplication;
import org.apache.wicket.protocol.http.WebResponse;
import org.apache.wicket.protocol.http.request.urlcompressing.UrlCompressingWebRequestProcessor;
import org.apache.wicket.protocol.http.servlet.ServletWebRequest;
import org.apache.wicket.request.IRequestCycleProcessor;
@@ -24,6 +26,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.gitblit.Constants;
import com.gitblit.GitBlitServer;
import com.gitblit.StoredSettings;
import com.gitblit.utils.JGitUtils;
@@ -31,8 +34,8 @@
import com.gitblit.wicket.pages.BlobDiffPage;
import com.gitblit.wicket.pages.BlobPage;
import com.gitblit.wicket.pages.BranchesPage;
import com.gitblit.wicket.pages.CommitPage;
import com.gitblit.wicket.pages.CommitDiffPage;
import com.gitblit.wicket.pages.CommitPage;
import com.gitblit.wicket.pages.LogPage;
import com.gitblit.wicket.pages.PatchPage;
import com.gitblit.wicket.pages.RawPage;
@@ -44,10 +47,7 @@
import com.gitblit.wicket.pages.TicGitTicketPage;
import com.gitblit.wicket.pages.TreePage;
public class GitBlitWebApp extends WebApplication {
   public static int PAGING_ITEM_COUNT = 50;
   Logger logger = LoggerFactory.getLogger(GitBlitWebApp.class);
@@ -61,8 +61,17 @@
   public void init() {
      super.init();
      // Setup page authorization mechanism
      if (StoredSettings.getBoolean("authenticateWebUI", false)) {
         AuthorizationStrategy authStrategy = new AuthorizationStrategy();
         getSecuritySettings().setAuthorizationStrategy(authStrategy);
         getSecuritySettings().setUnauthorizedComponentInstantiationListener(authStrategy);
      }
      // Grab Browser info (like timezone, etc)
      if (StoredSettings.getBoolean("useClientTimezone", false)) {
      getRequestCycleSettings().setGatherExtendedBrowserInfo(true);
      }
      // setup the standard gitweb-ish urls
      mount(new MixedParamUrlCodingStrategy("/summary", SummaryPage.class, new String[] { "r" }));
@@ -81,6 +90,8 @@
      // setup extended urls
      mount(new MixedParamUrlCodingStrategy("/ticgit", TicGitPage.class, new String[] { "r" }));
      mount(new MixedParamUrlCodingStrategy("/ticgittkt", TicGitTicketPage.class, new String[] { "r", "h", "f" }));
      mount(new MixedParamUrlCodingStrategy("/login", LoginPage.class, new String[] {}));
      
      repositories = new File(StoredSettings.getString("repositoriesFolder", "repos"));
      exportAll = StoredSettings.getBoolean("exportAll", true);
@@ -109,6 +120,28 @@
      return Application.DEPLOYMENT;
   }
   public User authenticate(String username, char [] password) {
      return new User(username, password);
   }
   public User authenticate(Cookie[] cookies) {
      if (cookies != null && cookies.length > 0) {
         for (Cookie cookie:cookies) {
            if (cookie.getName().equals(Constants.NAME)) {
               String value = cookie.getValue();
            }
         }
      }
      return null;
   }
   public void setCookie(WebResponse response, User user) {
      Cookie userCookie = new Cookie(Constants.NAME, user.getCookie());
      userCookie.setMaxAge(Integer.MAX_VALUE);
      userCookie.setPath("/");
      response.addCookie(userCookie);
   }
   public List<String> getRepositoryList() {
      return JGitUtils.getRepositoryList(repositories, exportAll, StoredSettings.getBoolean("nestedRepositories", true));
   }