Instead of using routerCtx just escape the url before routing (#18086)
A consequence of forcibly setting the RoutePath to the escaped url is that the auto routing to endpoints without terminal slashes fails (Causing #18060.) This failure raises the possibility that forcibly setting the RoutePath causes other unexpected behaviors too. Therefore, instead we should simply pre-escape the URL in the process registering handler. Then the request URL will be properly escaped for all the following calls. Fix #17938 Fix #18060 Replace #18062 Replace #17997 Signed-off-by: Andrew Thornton <art27@cantab.net>
This commit is contained in:
parent
26070eb818
commit
16adaaeaa3
4 changed files with 4 additions and 18 deletions
|
@ -33,6 +33,7 @@ func TestLinksNoLogin(t *testing.T) {
|
|||
"/user/forgot_password",
|
||||
"/api/swagger",
|
||||
"/user2/repo1",
|
||||
"/user2/repo1/",
|
||||
"/user2/repo1/projects",
|
||||
"/user2/repo1/projects/1",
|
||||
"/assets/img/404.png",
|
||||
|
@ -61,16 +62,6 @@ func TestRedirectsNoLogin(t *testing.T) {
|
|||
resp := MakeRequest(t, req, http.StatusFound)
|
||||
assert.EqualValues(t, path.Join(setting.AppSubURL, redirectLink), test.RedirectURL(resp))
|
||||
}
|
||||
|
||||
var temporaryRedirects = map[string]string{
|
||||
"/user2/repo1/": "/user2/repo1",
|
||||
}
|
||||
for link, redirectLink := range temporaryRedirects {
|
||||
req := NewRequest(t, "GET", link)
|
||||
resp := MakeRequest(t, req, http.StatusTemporaryRedirect)
|
||||
assert.EqualValues(t, path.Join(setting.AppSubURL, redirectLink), test.RedirectURL(resp))
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func TestNoLoginNotExist(t *testing.T) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue