mirror of
https://github.com/gitbucket/gitbucket.git
synced 2025-11-03 03:55:58 +01:00
Replace Context#path with the base url if it's configured.
This commit is contained in:
@@ -28,7 +28,7 @@ abstract class ControllerBase extends ScalatraFilter
|
|||||||
// Don't set content type via Accept header.
|
// Don't set content type via Accept header.
|
||||||
override def format(implicit request: HttpServletRequest) = ""
|
override def format(implicit request: HttpServletRequest) = ""
|
||||||
|
|
||||||
override def doFilter(request: ServletRequest, response: ServletResponse, chain: FilterChain) {
|
override def doFilter(request: ServletRequest, response: ServletResponse, chain: FilterChain): Unit = try {
|
||||||
val httpRequest = request.asInstanceOf[HttpServletRequest]
|
val httpRequest = request.asInstanceOf[HttpServletRequest]
|
||||||
val httpResponse = response.asInstanceOf[HttpServletResponse]
|
val httpResponse = response.asInstanceOf[HttpServletResponse]
|
||||||
val context = request.getServletContext.getContextPath
|
val context = request.getServletContext.getContextPath
|
||||||
@@ -56,12 +56,25 @@ abstract class ControllerBase extends ScalatraFilter
|
|||||||
// Scalatra actions
|
// Scalatra actions
|
||||||
super.doFilter(request, response, chain)
|
super.doFilter(request, response, chain)
|
||||||
}
|
}
|
||||||
|
} finally {
|
||||||
|
contextCache.remove();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private val contextCache = new java.lang.ThreadLocal[Context]()
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the context object for the request.
|
* Returns the context object for the request.
|
||||||
*/
|
*/
|
||||||
implicit def context: Context = Context(servletContext.getContextPath, LoginAccount, request)
|
implicit def context: Context = {
|
||||||
|
contextCache.get match {
|
||||||
|
case null => {
|
||||||
|
val context = Context(loadSystemSettings().baseUrl.getOrElse(servletContext.getContextPath), LoginAccount, request)
|
||||||
|
contextCache.set(context)
|
||||||
|
context
|
||||||
|
}
|
||||||
|
case context => context
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private def LoginAccount: Option[Account] = session.getAs[Account](Keys.Session.LoginAccount)
|
private def LoginAccount: Option[Account] = session.getAs[Account](Keys.Session.LoginAccount)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user