mirror of
https://github.com/gitbucket/gitbucket.git
synced 2025-10-31 18:46:28 +01:00
Fix redirect path encoding.
This commit is contained in:
@@ -3,7 +3,7 @@ package app
|
|||||||
import _root_.util.Directory._
|
import _root_.util.Directory._
|
||||||
import _root_.util.Implicits._
|
import _root_.util.Implicits._
|
||||||
import _root_.util.ControlUtil._
|
import _root_.util.ControlUtil._
|
||||||
import _root_.util.{FileUtil, Validations, Keys}
|
import _root_.util.{StringUtil, FileUtil, Validations, Keys}
|
||||||
import org.scalatra._
|
import org.scalatra._
|
||||||
import org.scalatra.json._
|
import org.scalatra.json._
|
||||||
import org.json4s._
|
import org.json4s._
|
||||||
@@ -38,7 +38,7 @@ abstract class ControllerBase extends ScalatraFilter
|
|||||||
val account = httpRequest.getSession.getAttribute(Keys.Session.LoginAccount).asInstanceOf[Account]
|
val account = httpRequest.getSession.getAttribute(Keys.Session.LoginAccount).asInstanceOf[Account]
|
||||||
if(account == null){
|
if(account == null){
|
||||||
// Redirect to login form
|
// Redirect to login form
|
||||||
httpResponse.sendRedirect(context + "/signin?" + path)
|
httpResponse.sendRedirect(context + "/signin?" + StringUtil.urlEncode(path))
|
||||||
} else if(account.isAdmin){
|
} else if(account.isAdmin){
|
||||||
// H2 Console (administrators only)
|
// H2 Console (administrators only)
|
||||||
chain.doFilter(request, response)
|
chain.doFilter(request, response)
|
||||||
@@ -107,7 +107,7 @@ abstract class ControllerBase extends ScalatraFilter
|
|||||||
if(request.getMethod.toUpperCase == "POST"){
|
if(request.getMethod.toUpperCase == "POST"){
|
||||||
org.scalatra.Unauthorized(redirect("/signin"))
|
org.scalatra.Unauthorized(redirect("/signin"))
|
||||||
} else {
|
} else {
|
||||||
org.scalatra.Unauthorized(redirect("/signin?redirect=" + currentURL))
|
org.scalatra.Unauthorized(redirect("/signin?redirect=" + StringUtil.urlEncode(currentURL)))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ trait SignInControllerBase extends ControllerBase { self: SystemSettingsService
|
|||||||
if(redirectUrl.replaceFirst("/$", "") == request.getContextPath){
|
if(redirectUrl.replaceFirst("/$", "") == request.getContextPath){
|
||||||
redirect("/")
|
redirect("/")
|
||||||
} else {
|
} else {
|
||||||
redirect(urlEncode(redirectUrl).replaceAll("%2F", "/"))
|
redirect(redirectUrl)
|
||||||
}
|
}
|
||||||
}.getOrElse {
|
}.getOrElse {
|
||||||
redirect("/")
|
redirect("/")
|
||||||
|
|||||||
Reference in New Issue
Block a user