Allow HEAD requests on public files (#26047)
Fixes https://github.com/mattermost/mattermost/issues/25666 ```release-note NONE ```
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
8151c011d1
Коммит
547bcff064
@@ -41,7 +41,7 @@ func (api *API) InitFile() {
|
|||||||
|
|
||||||
api.BaseRoutes.Team.Handle("/files/search", api.APISessionRequiredDisableWhenBusy(searchFiles)).Methods("POST")
|
api.BaseRoutes.Team.Handle("/files/search", api.APISessionRequiredDisableWhenBusy(searchFiles)).Methods("POST")
|
||||||
|
|
||||||
api.BaseRoutes.PublicFile.Handle("", api.APIHandler(getPublicFile)).Methods("GET")
|
api.BaseRoutes.PublicFile.Handle("", api.APIHandler(getPublicFile)).Methods("GET", "HEAD")
|
||||||
}
|
}
|
||||||
|
|
||||||
func parseMultipartRequestHeader(req *http.Request) (boundary string, err error) {
|
func parseMultipartRequestHeader(req *http.Request) (boundary string, err error) {
|
||||||
|
|||||||
@@ -1086,6 +1086,10 @@ func TestGetPublicFile(t *testing.T) {
|
|||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
require.Equal(t, http.StatusOK, resp.StatusCode, "failed to get image with public link")
|
require.Equal(t, http.StatusOK, resp.StatusCode, "failed to get image with public link")
|
||||||
|
|
||||||
|
resp, err = http.Head(link)
|
||||||
|
require.NoError(t, err)
|
||||||
|
require.Equal(t, http.StatusOK, resp.StatusCode, "failed to respond to HEAD request")
|
||||||
|
|
||||||
resp, err = http.Get(link[:strings.LastIndex(link, "?")])
|
resp, err = http.Get(link[:strings.LastIndex(link, "?")])
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
require.Equal(t, http.StatusBadRequest, resp.StatusCode, "should've failed to get image with public link without hash", resp.Status)
|
require.Equal(t, http.StatusBadRequest, resp.StatusCode, "should've failed to get image with public link without hash", resp.Status)
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user