mirror of
https://github.com/gitbucket/gitbucket.git
synced 2025-11-06 13:35:50 +01:00
(refs #312)Fix redirection for non git client
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user