From 49bf88f7a7b63008361e4dd852888fc13bb18ea2 Mon Sep 17 00:00:00 2001 From: takezoe Date: Wed, 12 Mar 2014 22:39:12 +0900 Subject: [PATCH] (refs #312)Fix redirection for non git client --- src/main/scala/servlet/GitRepositoryServlet.scala | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/scala/servlet/GitRepositoryServlet.scala b/src/main/scala/servlet/GitRepositoryServlet.scala index 00cd04f91..bb19aa54e 100644 --- a/src/main/scala/servlet/GitRepositoryServlet.scala +++ b/src/main/scala/servlet/GitRepositoryServlet.scala @@ -50,11 +50,11 @@ class GitRepositoryServlet extends GitServlet with SystemSettingsService { override def service(req: HttpServletRequest, res: HttpServletResponse): Unit = { val agent = req.getHeader("USER-AGENT") - if(agent == null || !agent.startsWith("git/")){ + val index = req.getRequestURI.indexOf(".git") + if(index >= 0 && (agent == null || agent.toLowerCase.indexOf("git/") < 0)){ // redirect for browsers - val paths = req.getRequestURI.split("/") - val baseUrl = loadSystemSettings().baseUrl.getOrElse(req.getServletContext.getContextPath) - res.sendRedirect(baseUrl + "/" + paths.dropRight(1).last + "/" + paths.last.replaceFirst("\\.git$", "")) + val paths = req.getRequestURI.substring(0, index).split("/") + res.sendRedirect(baseUrl(req) + "/" + paths.dropRight(1).last + "/" + paths.last) } else { // response for git client super.service(req, res)