mirror of
https://github.com/gitbucket/gitbucket.git
synced 2025-11-05 04:56:02 +01:00
Fix a problem to redirect wikipage named by multi-byte characters
In some specific case, redirect path (created from route params) is incorrect. `redirectUrl` is expected to be encoded, but scalatra decodes route params by rl.UrlCodingUtils via ScalatraBase.UriDecoder. To avoid this problem, I add dirty workaround to encode redirect path.
This commit is contained in:
@@ -3,6 +3,7 @@ package app
|
|||||||
import service._
|
import service._
|
||||||
import jp.sf.amateras.scalatra.forms._
|
import jp.sf.amateras.scalatra.forms._
|
||||||
import util.Implicits._
|
import util.Implicits._
|
||||||
|
import util.StringUtil._
|
||||||
import util.Keys
|
import util.Keys
|
||||||
|
|
||||||
class SignInController extends SignInControllerBase with SystemSettingsService with AccountService
|
class SignInController extends SignInControllerBase with SystemSettingsService with AccountService
|
||||||
@@ -47,7 +48,7 @@ trait SignInControllerBase extends ControllerBase { self: SystemSettingsService
|
|||||||
if(redirectUrl.replaceFirst("/$", "") == request.getContextPath){
|
if(redirectUrl.replaceFirst("/$", "") == request.getContextPath){
|
||||||
redirect("/")
|
redirect("/")
|
||||||
} else {
|
} else {
|
||||||
redirect(redirectUrl)
|
redirect(urlEncode(redirectUrl).replaceAll("%2F", "/"))
|
||||||
}
|
}
|
||||||
}.getOrElse {
|
}.getOrElse {
|
||||||
redirect("/")
|
redirect("/")
|
||||||
|
|||||||
Reference in New Issue
Block a user