diff --git a/src/main/scala/ScalatraBootstrap.scala b/src/main/scala/ScalatraBootstrap.scala index 534db75..231da65 100644 --- a/src/main/scala/ScalatraBootstrap.scala +++ b/src/main/scala/ScalatraBootstrap.scala @@ -35,19 +35,19 @@ context.mount(new FileUploadController, "/upload") val filter = new CompositeScalatraFilter() - filter.mount(new IndexController) - filter.mount(new ApiController) - filter.mount(new SystemSettingsController) - filter.mount(new DashboardController) - filter.mount(new AccountController) - filter.mount(new RepositoryViewerController) - filter.mount(new WikiController) - filter.mount(new LabelsController) - filter.mount(new PrioritiesController) - filter.mount(new MilestonesController) - filter.mount(new IssuesController) - filter.mount(new PullRequestsController) - filter.mount(new RepositorySettingsController) + filter.mount(new IndexController, "/") + filter.mount(new ApiController, "/api/v3") + filter.mount(new SystemSettingsController, "/admin") + filter.mount(new DashboardController, "/*") + filter.mount(new AccountController, "/*") + filter.mount(new RepositoryViewerController, "/*") + filter.mount(new WikiController, "/*") + filter.mount(new LabelsController, "/*") + filter.mount(new PrioritiesController, "/*") + filter.mount(new MilestonesController, "/*") + filter.mount(new IssuesController, "/*") + filter.mount(new PullRequestsController, "/*") + filter.mount(new RepositorySettingsController, "/*") context.addFilter("compositeScalatraFilter", filter) context.getFilterRegistration("compositeScalatraFilter").addMappingForUrlPatterns(EnumSet.allOf(classOf[DispatcherType]), true, "/*") diff --git a/src/main/scala/gitbucket/core/controller/CompositeScalatraFilter.scala b/src/main/scala/gitbucket/core/controller/CompositeScalatraFilter.scala deleted file mode 100644 index d422955..0000000 --- a/src/main/scala/gitbucket/core/controller/CompositeScalatraFilter.scala +++ /dev/null @@ -1,46 +0,0 @@ -package gitbucket.core.controller - -import javax.servlet._ - -import org.scalatra.ScalatraFilter - -import scala.collection.mutable.ListBuffer - -class CompositeScalatraFilter extends Filter { - - private val filters = new ListBuffer[ScalatraFilter]() - - def mount(filter: ScalatraFilter): Unit = { - filters += filter - } - - override def init(filterConfig: FilterConfig): Unit = { - filters.foreach(_.init(filterConfig)) - } - - override def destroy(): Unit = { - filters.foreach(_.destroy()) - } - - override def doFilter(request: ServletRequest, response: ServletResponse, chain: FilterChain): Unit = { - filters.foreach { filter => - val mockChain = new MockFilterChain() - filter.doFilter(request, response, mockChain) - if(mockChain.continue == false){ - return () - } - } - chain.doFilter(request, response) - } - -} - -class MockFilterChain extends FilterChain { - - var continue: Boolean = false - - override def doFilter(request: ServletRequest, response: ServletResponse): Unit = { - continue = true - } -} - diff --git a/src/main/scala/gitbucket/core/servlet/CompositeScalatraFilter.scala b/src/main/scala/gitbucket/core/servlet/CompositeScalatraFilter.scala new file mode 100644 index 0000000..5b3ed8a --- /dev/null +++ b/src/main/scala/gitbucket/core/servlet/CompositeScalatraFilter.scala @@ -0,0 +1,50 @@ +package gitbucket.core.servlet + +import javax.servlet._ + +import org.scalatra.ScalatraFilter + +import scala.collection.mutable.ListBuffer + +class CompositeScalatraFilter extends Filter { + + private val filters = new ListBuffer[(ScalatraFilter, String)]() + + def mount(filter: ScalatraFilter, path: String): Unit = { + filters += ((filter, path)) + } + + override def init(filterConfig: FilterConfig): Unit = { + filters.foreach { case (filter, _) => + filter.init(filterConfig) + } + } + + override def destroy(): Unit = { + filters.foreach { case (filter, _) => + filter.destroy() + } + } + + override def doFilter(request: ServletRequest, response: ServletResponse, chain: FilterChain): Unit = { + filters.foreach { case (filter, path) => + val mockChain = new MockFilterChain() + filter.doFilter(request, response, mockChain) + if(mockChain.continue == false){ + return () + } + } + chain.doFilter(request, response) + } + +} + +class MockFilterChain extends FilterChain { + + var continue: Boolean = false + + override def doFilter(request: ServletRequest, response: ServletResponse): Unit = { + continue = true + } +} + diff --git a/src/main/scala/gitbucket/core/servlet/PluginControllerFilter.scala b/src/main/scala/gitbucket/core/servlet/PluginControllerFilter.scala index 21a8c78..f51fc5a 100644 --- a/src/main/scala/gitbucket/core/servlet/PluginControllerFilter.scala +++ b/src/main/scala/gitbucket/core/servlet/PluginControllerFilter.scala @@ -3,7 +3,6 @@ import javax.servlet._ import javax.servlet.http.HttpServletRequest -import gitbucket.core.controller.MockFilterChain import gitbucket.core.plugin.PluginRegistry class PluginControllerFilter extends Filter {