Strip headers on federationapi endpoints

This commit is contained in:
Neil Alexander 2020-03-26 09:40:46 +00:00
parent 50bb441215
commit eedb355b57
3 changed files with 14 additions and 12 deletions

View file

@ -135,3 +135,12 @@ func AddPrevEventsToEvent(
return nil return nil
} }
// RemoveEventHeaders unwraps an array of headered events.
func RemoveEventHeaders(in []gomatrixserverlib.HeaderedEvent) []gomatrixserverlib.Event {
result := make([]gomatrixserverlib.Event, len(in))
for i := range in {
result[i] = in[i].Event
}
return result
}

View file

@ -219,8 +219,8 @@ func SendJoin(
return util.JSONResponse{ return util.JSONResponse{
Code: http.StatusOK, Code: http.StatusOK,
JSON: map[string]interface{}{ JSON: map[string]interface{}{
"state": stateAndAuthChainResponse.StateEvents, "state": common.RemoveEventHeaders(stateAndAuthChainResponse.StateEvents),
"auth_chain": stateAndAuthChainResponse.AuthChainEvents, "auth_chain": common.RemoveEventHeaders(stateAndAuthChainResponse.AuthChainEvents),
}, },
} }
} }

View file

@ -18,6 +18,7 @@ import (
"net/url" "net/url"
"github.com/matrix-org/dendrite/clientapi/jsonerror" "github.com/matrix-org/dendrite/clientapi/jsonerror"
"github.com/matrix-org/dendrite/common"
"github.com/matrix-org/dendrite/roomserver/api" "github.com/matrix-org/dendrite/roomserver/api"
"github.com/matrix-org/gomatrixserverlib" "github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/util" "github.com/matrix-org/util"
@ -129,17 +130,9 @@ func getState(
return nil, &util.JSONResponse{Code: http.StatusNotFound, JSON: nil} return nil, &util.JSONResponse{Code: http.StatusNotFound, JSON: nil}
} }
var stateEvents, authEvents []gomatrixserverlib.Event
for _, headeredEvent := range response.StateEvents {
stateEvents = append(stateEvents, headeredEvent.Event)
}
for _, headeredEvent := range response.AuthChainEvents {
authEvents = append(authEvents, headeredEvent.Event)
}
return &gomatrixserverlib.RespState{ return &gomatrixserverlib.RespState{
StateEvents: stateEvents, StateEvents: common.RemoveEventHeaders(response.StateEvents),
AuthEvents: authEvents, AuthEvents: common.RemoveEventHeaders(response.AuthChainEvents),
}, nil }, nil
} }