(refs #1439)Fix pattern matching for assemble GitLFS URL

This commit is contained in:
Naoki Takezoe
2017-02-01 08:03:02 +09:00
parent 5a510d5703
commit fd8add4fcd
2 changed files with 38 additions and 40 deletions

View File

@@ -64,11 +64,10 @@ class GitLfsTransferServlet extends HttpServlet {
} }
private def getPathInfo(req: HttpServletRequest, res: HttpServletResponse): Option[(String, String, String)] = { private def getPathInfo(req: HttpServletRequest, res: HttpServletResponse): Option[(String, String, String)] = {
val paths = req.getRequestURI.substring(1).split("/") req.getRequestURI.substring(1).split("/").reverse match {
val owner = paths.dropRight(2).last case Array(oid, repository, owner, _*) => Some((owner, repository, oid))
val repository = paths.dropRight(1).last case _ => None
val oid = paths.last }
Some((owner, repository, oid))
} }
private def sendError(res: HttpServletResponse, status: Int, message: String): Unit = { private def sendError(res: HttpServletResponse, status: Int, message: String): Unit = {

View File

@@ -76,10 +76,8 @@ class GitRepositoryServlet extends GitServlet with SystemSettingsService {
case Some(baseUrl) => { case Some(baseUrl) => {
val index = req.getRequestURI.indexOf(".git") val index = req.getRequestURI.indexOf(".git")
if(index >= 0){ if(index >= 0){
val paths = req.getRequestURI.substring(0, index).split("/") req.getRequestURI.substring(0, index).split("/").reverse match {
val owner = paths.dropRight(1).last case Array(repository, owner, _*) =>
val repository = paths.last
val timeout = System.currentTimeMillis + (60000 * 10) // 10 min. val timeout = System.currentTimeMillis + (60000 * 10) // 10 min.
val batchResponse = batchRequest.operation match { val batchResponse = batchRequest.operation match {
case "upload" => case "upload" =>
@@ -118,6 +116,7 @@ class GitRepositoryServlet extends GitServlet with SystemSettingsService {
} }
} }
} }
}
class GitBucketRepositoryResolver(parent: FileResolver[HttpServletRequest]) extends RepositoryResolver[HttpServletRequest] { class GitBucketRepositoryResolver(parent: FileResolver[HttpServletRequest]) extends RepositoryResolver[HttpServletRequest] {