diff --git a/src/main/scala/gitbucket/core/servlet/CompositeScalatraFilter.scala b/src/main/scala/gitbucket/core/servlet/CompositeScalatraFilter.scala index c180738..29102d0 100644 --- a/src/main/scala/gitbucket/core/servlet/CompositeScalatraFilter.scala +++ b/src/main/scala/gitbucket/core/servlet/CompositeScalatraFilter.scala @@ -28,12 +28,18 @@ } override def doFilter(request: ServletRequest, response: ServletResponse, chain: FilterChain): Unit = { - val requestUri = request.asInstanceOf[HttpServletRequest].getRequestURI + val contextPath = request.getServletContext.getContextPath + val requestPath = request.asInstanceOf[HttpServletRequest].getRequestURI.substring(contextPath.length) + val checkPath = if(requestPath.endsWith("/")){ + requestPath + } else { + requestPath + "/" + } filters .filter { case (_, path) => val start = path.replaceFirst("/\\*$", "/") - (requestUri + "/").startsWith(start) + checkPath.startsWith(start) } .foreach { case (filter, _) => val mockChain = new MockFilterChain()