mirror of
https://github.com/matrix-org/dendrite.git
synced 2025-12-28 09:13:09 -06:00
Delete duplicated /register/email/requestToken endpoint
This commit is contained in:
parent
7d9304ea63
commit
01ce9abc5b
|
|
@ -16,7 +16,6 @@
|
||||||
package routing
|
package routing
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
|
||||||
"context"
|
"context"
|
||||||
"crypto/hmac"
|
"crypto/hmac"
|
||||||
"crypto/sha1"
|
"crypto/sha1"
|
||||||
|
|
@ -1104,98 +1103,3 @@ func RegisterAvailable(
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func RegisterEmailRequestToken(
|
|
||||||
req *http.Request,
|
|
||||||
cfg *config.ClientAPI,
|
|
||||||
) util.JSONResponse {
|
|
||||||
var r registerEmailRequestTokenRequest
|
|
||||||
resErr := httputil.UnmarshalJSONRequest(req, &r)
|
|
||||||
if resErr != nil {
|
|
||||||
return *resErr
|
|
||||||
}
|
|
||||||
idServer := r.IdServer
|
|
||||||
idAccessToken := r.IdAccessToken
|
|
||||||
// if !isServerTrusted(idServer, cfg.Matrix.TrustedIDServers) {
|
|
||||||
// return util.JSONResponse{
|
|
||||||
// Code: http.StatusForbidden,
|
|
||||||
// JSON: jsonerror.NotTrusted(fmt.Sprintf("identity server %s is not trusted.", idServer)),
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
r.IdServer = ""
|
|
||||||
r.IdAccessToken = ""
|
|
||||||
return requestEmailTokenFromIdServer(req.Context(), idServer, idAccessToken, &r)
|
|
||||||
}
|
|
||||||
|
|
||||||
func isServerTrusted(s string, trusted []string) bool {
|
|
||||||
for _, t := range trusted {
|
|
||||||
if s == t {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
func requestEmailTokenFromIdServer(
|
|
||||||
ctx context.Context,
|
|
||||||
idServer, idAccessToken string,
|
|
||||||
r *registerEmailRequestTokenRequest,
|
|
||||||
) util.JSONResponse {
|
|
||||||
tr := &http.Transport{
|
|
||||||
TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
|
|
||||||
}
|
|
||||||
client := &http.Client{Transport: tr}
|
|
||||||
b := bytes.Buffer{}
|
|
||||||
enc := json.NewEncoder(&b)
|
|
||||||
err := enc.Encode(r)
|
|
||||||
if err != nil {
|
|
||||||
util.GetLogger(ctx).WithError(err).Error("enc.Encode failed")
|
|
||||||
return jsonerror.InternalServerError()
|
|
||||||
}
|
|
||||||
idReq, err := http.NewRequestWithContext(
|
|
||||||
ctx,
|
|
||||||
"POST",
|
|
||||||
fmt.Sprintf(
|
|
||||||
"https://%s/_matrix/identity/api/v1/validate/email/requestToken",
|
|
||||||
idServer),
|
|
||||||
&b)
|
|
||||||
if err != nil {
|
|
||||||
util.GetLogger(ctx).WithError(err).Error("http.NewRequestWithContext failed")
|
|
||||||
return jsonerror.InternalServerError()
|
|
||||||
}
|
|
||||||
idReq.Header.Add("Content-Type", "application/json")
|
|
||||||
idResp, err := client.Do(idReq)
|
|
||||||
if err != nil {
|
|
||||||
util.GetLogger(ctx).WithError(err).Errorf("failed to connect to identity server %s", idServer)
|
|
||||||
return jsonerror.InternalServerError()
|
|
||||||
}
|
|
||||||
defer idResp.Body.Close()
|
|
||||||
decoder := json.NewDecoder(idResp.Body)
|
|
||||||
if idResp.StatusCode < 300 {
|
|
||||||
var resp registerEmailRequestTokenResponse
|
|
||||||
decoder.Decode(&resp)
|
|
||||||
if err != nil {
|
|
||||||
util.GetLogger(ctx).WithError(err).Error("failed to decode identity server response body")
|
|
||||||
return jsonerror.InternalServerError()
|
|
||||||
}
|
|
||||||
return util.JSONResponse{
|
|
||||||
Code: idResp.StatusCode,
|
|
||||||
JSON: resp,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if idResp.StatusCode < 500 {
|
|
||||||
var resp jsonerror.MatrixError
|
|
||||||
decoder.Decode(&resp)
|
|
||||||
if err != nil {
|
|
||||||
util.GetLogger(ctx).WithError(err).Error("failed to decode identity server response body")
|
|
||||||
return jsonerror.InternalServerError()
|
|
||||||
}
|
|
||||||
return util.JSONResponse{
|
|
||||||
Code: idResp.StatusCode,
|
|
||||||
JSON: resp,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// We got 500 status code from indentity server
|
|
||||||
util.GetLogger(ctx).WithError(err).Error("identity server internal server error")
|
|
||||||
return jsonerror.InternalServerError()
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -312,13 +312,6 @@ func Setup(
|
||||||
return RegisterAvailable(req, cfg, accountDB)
|
return RegisterAvailable(req, cfg, accountDB)
|
||||||
})).Methods(http.MethodGet, http.MethodOptions)
|
})).Methods(http.MethodGet, http.MethodOptions)
|
||||||
|
|
||||||
r0mux.Handle("/register/email/requestToken", httputil.MakeExternalAPI("registerEmailRequestToken", func(req *http.Request) util.JSONResponse {
|
|
||||||
if r := rateLimits.rateLimit(req); r != nil {
|
|
||||||
return *r
|
|
||||||
}
|
|
||||||
return RegisterEmailRequestToken(req, cfg)
|
|
||||||
})).Methods(http.MethodPost, http.MethodOptions)
|
|
||||||
|
|
||||||
r0mux.Handle("/directory/room/{roomAlias}",
|
r0mux.Handle("/directory/room/{roomAlias}",
|
||||||
httputil.MakeExternalAPI("directory_room", func(req *http.Request) util.JSONResponse {
|
httputil.MakeExternalAPI("directory_room", func(req *http.Request) util.JSONResponse {
|
||||||
vars, err := httputil.URLDecodeMapValues(mux.Vars(req))
|
vars, err := httputil.URLDecodeMapValues(mux.Vars(req))
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue