Rewrite URL

This commit is contained in:
Neil Alexander 2021-07-27 20:02:58 +01:00
parent 7b5e47f81a
commit 71e2ae7421
No known key found for this signature in database
GPG key ID: A02A2019A2BB0944
3 changed files with 9 additions and 8 deletions

View file

@ -117,7 +117,10 @@ func Setup(
r0mux := publicAPIMux.PathPrefix("/r0").Subrouter()
unstableMux := publicAPIMux.PathPrefix("/unstable").Subrouter()
unstableMux.NotFoundHandler = r0mux // serve r0 endpoints by default unless overridden
defer unstableMux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
r.URL.Path = strings.Replace(r.URL.Path, "/unstable/", "/r0/", 1)
r0mux.ServeHTTP(w, r)
}) // serve r0 endpoints by default unless overridden
r0mux.Handle("/createRoom",
httputil.MakeAuthAPI("createRoom", userAPI, func(req *http.Request, device *userapi.Device) util.JSONResponse {

View file

@ -57,12 +57,6 @@ func Setup(
v1fedmux := fedMux.PathPrefix("/v1").Subrouter()
v2fedmux := fedMux.PathPrefix("/v2").Subrouter()
unstableFedMux := fedMux.PathPrefix("/unstable").Subrouter()
unstableFedMux.NotFoundHandler = v2fedmux // serve v2 endpoints by default unless overridden
unstableKeysMux := keyMux.PathPrefix("/unstable").Subrouter()
unstableKeysMux.NotFoundHandler = v2keysmux // serve v2 endpoints by default unless overridden
wakeup := &httputil.FederationWakeups{
FsAPI: fsAPI,
}

View file

@ -16,6 +16,7 @@ package routing
import (
"net/http"
"strings"
"github.com/gorilla/mux"
"github.com/matrix-org/dendrite/internal/httputil"
@ -41,7 +42,10 @@ func Setup(
) {
r0mux := csMux.PathPrefix("/r0").Subrouter()
unstableMux := csMux.PathPrefix("/unstable").Subrouter()
unstableMux.NotFoundHandler = r0mux // serve r0 endpoints by default unless overridden
defer unstableMux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
r.URL.Path = strings.Replace(r.URL.Path, "/unstable/", "/r0/", 1)
r0mux.ServeHTTP(w, r)
}) // serve r0 endpoints by default unless overridden
// TODO: Add AS support for all handlers below.
r0mux.Handle("/sync", httputil.MakeAuthAPI("sync", userAPI, func(req *http.Request, device *userapi.Device) util.JSONResponse {