diff --git a/src/main/scala/gitbucket/core/service/SystemSettingsService.scala b/src/main/scala/gitbucket/core/service/SystemSettingsService.scala index be08217..35bda93 100644 --- a/src/main/scala/gitbucket/core/service/SystemSettingsService.scala +++ b/src/main/scala/gitbucket/core/service/SystemSettingsService.scala @@ -1,6 +1,7 @@ package gitbucket.core.service import gitbucket.core.util.{Directory, ControlUtil} +import gitbucket.core.util.Implicits._ import Directory._ import ControlUtil._ import SystemSettingsService._ @@ -131,11 +132,7 @@ smtp: Option[Smtp], ldapAuthentication: Boolean, ldap: Option[Ldap]){ - def baseUrl(request: HttpServletRequest): String = baseUrl.getOrElse { - defining(request.getRequestURL.toString){ url => - url.substring(0, url.length - (request.getRequestURI.length - request.getContextPath.length)) - } - }.stripSuffix("/") + def baseUrl(request: HttpServletRequest): String = baseUrl.fold(request.baseUrl)(_.stripSuffix("/")) def sshPortOrDefault:Int = sshPort.getOrElse(DefaultSshPort) } diff --git a/src/main/scala/gitbucket/core/util/Implicits.scala b/src/main/scala/gitbucket/core/util/Implicits.scala index 131bd98..a7209de 100644 --- a/src/main/scala/gitbucket/core/util/Implicits.scala +++ b/src/main/scala/gitbucket/core/util/Implicits.scala @@ -75,6 +75,11 @@ def gitRepositoryPath: String = request.getRequestURI.replaceFirst("^/git/", "/") + def baseUrl:String = { + val url = request.getRequestURL.toString + val len = url.length - (request.getRequestURI.length - request.getContextPath.length) + url.substring(0, len).stripSuffix("/") + } } implicit class RichSession(session: HttpSession){