You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

GitBlitWebApp.java 4.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. package com.gitblit.wicket;
  2. import org.apache.wicket.Application;
  3. import org.apache.wicket.Page;
  4. import org.apache.wicket.Request;
  5. import org.apache.wicket.Response;
  6. import org.apache.wicket.Session;
  7. import org.apache.wicket.protocol.http.WebApplication;
  8. import org.apache.wicket.protocol.http.request.urlcompressing.UrlCompressingWebRequestProcessor;
  9. import org.apache.wicket.request.IRequestCycleProcessor;
  10. import org.apache.wicket.request.target.coding.MixedParamUrlCodingStrategy;
  11. import com.gitblit.GitBlit;
  12. import com.gitblit.Keys;
  13. import com.gitblit.StoredSettings;
  14. import com.gitblit.wicket.pages.BlobDiffPage;
  15. import com.gitblit.wicket.pages.BlobPage;
  16. import com.gitblit.wicket.pages.BranchesPage;
  17. import com.gitblit.wicket.pages.CommitDiffPage;
  18. import com.gitblit.wicket.pages.CommitPage;
  19. import com.gitblit.wicket.pages.LogPage;
  20. import com.gitblit.wicket.pages.PatchPage;
  21. import com.gitblit.wicket.pages.RawPage;
  22. import com.gitblit.wicket.pages.RepositoriesPage;
  23. import com.gitblit.wicket.pages.SummaryPage;
  24. import com.gitblit.wicket.pages.TagPage;
  25. import com.gitblit.wicket.pages.TagsPage;
  26. import com.gitblit.wicket.pages.TicGitPage;
  27. import com.gitblit.wicket.pages.TicGitTicketPage;
  28. import com.gitblit.wicket.pages.TreePage;
  29. public class GitBlitWebApp extends WebApplication {
  30. @Override
  31. public void init() {
  32. super.init();
  33. // Setup page authorization mechanism
  34. if (StoredSettings.getBoolean(Keys.web_authenticate, false)) {
  35. AuthorizationStrategy authStrategy = new AuthorizationStrategy();
  36. getSecuritySettings().setAuthorizationStrategy(authStrategy);
  37. getSecuritySettings().setUnauthorizedComponentInstantiationListener(authStrategy);
  38. }
  39. // Grab Browser info (like timezone, etc)
  40. if (StoredSettings.getBoolean(Keys.web_useClientTimezone, false)) {
  41. getRequestCycleSettings().setGatherExtendedBrowserInfo(true);
  42. }
  43. // setup the standard gitweb-ish urls
  44. mount(new MixedParamUrlCodingStrategy("/summary", SummaryPage.class, new String[] { "r" }));
  45. mount(new MixedParamUrlCodingStrategy("/log", LogPage.class, new String[] { "r", "h" }));
  46. mount(new MixedParamUrlCodingStrategy("/tags", TagsPage.class, new String[] { "r" }));
  47. mount(new MixedParamUrlCodingStrategy("/branches", BranchesPage.class, new String[] { "r" }));
  48. mount(new MixedParamUrlCodingStrategy("/commit", CommitPage.class, new String[] { "r", "h" }));
  49. mount(new MixedParamUrlCodingStrategy("/tag", TagPage.class, new String[] { "r", "h" }));
  50. mount(new MixedParamUrlCodingStrategy("/tree", TreePage.class, new String[] { "r", "h", "f" }));
  51. mount(new MixedParamUrlCodingStrategy("/blob", BlobPage.class, new String[] { "r", "h", "f" }));
  52. mount(new MixedParamUrlCodingStrategy("/raw", RawPage.class, new String[] { "r", "h", "f" }));
  53. mount(new MixedParamUrlCodingStrategy("/blobdiff", BlobDiffPage.class, new String[] { "r", "h", "f" }));
  54. mount(new MixedParamUrlCodingStrategy("/commitdiff", CommitDiffPage.class, new String[] { "r", "h" }));
  55. mount(new MixedParamUrlCodingStrategy("/patch", PatchPage.class, new String[] { "r", "h", "f" }));
  56. // setup extended urls
  57. mount(new MixedParamUrlCodingStrategy("/ticgit", TicGitPage.class, new String[] { "r" }));
  58. mount(new MixedParamUrlCodingStrategy("/ticgittkt", TicGitTicketPage.class, new String[] { "r", "h", "f" }));
  59. mount(new MixedParamUrlCodingStrategy("/login", LoginPage.class, new String[] {}));
  60. }
  61. @Override
  62. public Class<? extends Page> getHomePage() {
  63. return RepositoriesPage.class;
  64. }
  65. @Override
  66. public final Session newSession(Request request, Response response) {
  67. return new GitBlitWebSession(request);
  68. }
  69. @Override
  70. protected final IRequestCycleProcessor newRequestCycleProcessor() {
  71. return new UrlCompressingWebRequestProcessor();
  72. }
  73. @Override
  74. public final String getConfigurationType() {
  75. if (GitBlit.self().isDebugMode())
  76. return Application.DEVELOPMENT;
  77. return Application.DEPLOYMENT;
  78. }
  79. public String getCloneUrl(String repositoryName) {
  80. return StoredSettings.getString(Keys.git_cloneUrl, "https://localhost/git/") + repositoryName;
  81. }
  82. public static GitBlitWebApp get() {
  83. return (GitBlitWebApp) WebApplication.get();
  84. }
  85. }