Skip to content

Commit a185027

Browse files
committed
cr fixes
1 parent bf31c44 commit a185027

File tree

4 files changed

+18
-23
lines changed

4 files changed

+18
-23
lines changed

clientapi/routing/admin.go

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -551,12 +551,6 @@ func AdminUserDeviceRetrieveCreate(
551551

552552
switch req.Method {
553553
case http.MethodPost:
554-
if err != nil {
555-
return util.JSONResponse{
556-
Code: http.StatusBadRequest,
557-
JSON: spec.InvalidParam(userID),
558-
}
559-
}
560554
var payload struct {
561555
DeviceID string `json:"device_id"`
562556
}
@@ -980,11 +974,10 @@ func AdminRetrieveAccount(req *http.Request, cfg *config.ClientAPI, userAPI user
980974
Code: http.StatusNotFound,
981975
JSON: spec.NotFound(err.Error()),
982976
}
983-
} else if err != nil {
984-
return util.JSONResponse{
985-
Code: http.StatusInternalServerError,
986-
JSON: spec.Unknown(err.Error()),
987-
}
977+
}
978+
return util.JSONResponse{
979+
Code: http.StatusInternalServerError,
980+
JSON: spec.Unknown(err.Error()),
988981
}
989982
}
990983
body.AvatarURL = profile.AvatarURL

internal/httputil/httpapi.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,9 @@ func WithAuth() AuthAPIOption {
5858
}
5959
}
6060

61+
// UserVerifier verifies users by their access tokens. Currently, there are two interface implementations:
62+
// DefaultUserVerifier and MSC3861UserVerifier. The first one checks if the token exists in the server's database,
63+
// whereas the latter passes the token for verification to MAS and acts in accordance with MAS's response.
6164
type UserVerifier interface {
6265
// VerifyUserFromRequest authenticates the HTTP request,
6366
// on success returns Device of the requester.

setup/mscs/msc3861/msc3861_user_verifier.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -354,14 +354,13 @@ func (m *MSC3861UserVerifier) introspectToken(ctx context.Context, token string)
354354
if err != nil {
355355
return nil, err
356356
}
357-
body := resp.Body
358357
defer resp.Body.Close() // nolint: errcheck
359358

360359
if c := resp.StatusCode; c/100 != 2 {
361360
return nil, errors.New(strings.Join([]string{"The introspection endpoint returned a '", resp.Status, "' response"}, ""))
362361
}
363362
var ir introspectionResponse
364-
if err := json.NewDecoder(body).Decode(&ir); err != nil {
363+
if err := json.NewDecoder(resp.Body).Decode(&ir); err != nil {
365364
return nil, err
366365
}
367366
return &ir, nil

syncapi/syncapi_test.go

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -120,14 +120,14 @@ func (s *syncUserAPI) PerformLastSeenUpdate(ctx context.Context, req *userapi.Pe
120120
return nil
121121
}
122122

123-
type userVerifier struct {
123+
type mockUserVerifier struct {
124124
accessTokenToDeviceAndResponse map[string]struct {
125125
Device *userapi.Device
126126
Response *util.JSONResponse
127127
}
128128
}
129129

130-
func (u *userVerifier) VerifyUserFromRequest(req *http.Request) (*userapi.Device, *util.JSONResponse) {
130+
func (u *mockUserVerifier) VerifyUserFromRequest(req *http.Request) (*userapi.Device, *util.JSONResponse) {
131131
if pair, ok := u.accessTokenToDeviceAndResponse[req.URL.Query().Get("access_token")]; ok {
132132
return pair.Device, pair.Response
133133
}
@@ -161,7 +161,7 @@ func testSyncAccessTokens(t *testing.T, dbType test.DBType) {
161161
jsctx, _ := natsInstance.Prepare(processCtx, &cfg.Global.JetStream)
162162
defer jetstream.DeleteAllStreams(jsctx, &cfg.Global.JetStream)
163163
msgs := toNATSMsgs(t, cfg, room.Events()...)
164-
uv := &userVerifier{}
164+
uv := &mockUserVerifier{}
165165

166166
AddPublicRoutes(processCtx, routers, cfg, cm, &natsInstance, &syncUserAPI{accounts: []userapi.Device{alice}}, &syncRoomserverAPI{rooms: []*test.Room{room}}, caches, uv, caching.DisableMetrics)
167167
testrig.MustPublishMsgs(t, jsctx, msgs...)
@@ -284,7 +284,7 @@ func testSyncEventFormatPowerLevels(t *testing.T, dbType test.DBType) {
284284
cm := sqlutil.NewConnectionManager(processCtx, cfg.Global.DatabaseOptions)
285285
caches := caching.NewRistrettoCache(128*1024*1024, time.Hour, caching.DisableMetrics)
286286
natsInstance := jetstream.NATSInstance{}
287-
uv := userVerifier{
287+
uv := mockUserVerifier{
288288
accessTokenToDeviceAndResponse: map[string]struct {
289289
Device *userapi.Device
290290
Response *util.JSONResponse
@@ -538,7 +538,7 @@ func testSyncAPIUpdatePresenceImmediately(t *testing.T, dbType test.DBType) {
538538

539539
jsctx, _ := natsInstance.Prepare(processCtx, &cfg.Global.JetStream)
540540
defer jetstream.DeleteAllStreams(jsctx, &cfg.Global.JetStream)
541-
uv := userVerifier{
541+
uv := mockUserVerifier{
542542
accessTokenToDeviceAndResponse: map[string]struct {
543543
Device *userapi.Device
544544
Response *util.JSONResponse
@@ -668,7 +668,7 @@ func testHistoryVisibility(t *testing.T, dbType test.DBType) {
668668
// Use the actual internal roomserver API
669669
rsAPI := roomserver.NewInternalAPI(processCtx, cfg, cm, &natsInstance, caches, caching.DisableMetrics)
670670
rsAPI.SetFederationAPI(nil, nil)
671-
uv := userVerifier{
671+
uv := mockUserVerifier{
672672
accessTokenToDeviceAndResponse: map[string]struct {
673673
Device *userapi.Device
674674
Response *util.JSONResponse
@@ -946,7 +946,7 @@ func TestGetMembership(t *testing.T) {
946946
// Use an actual roomserver for this
947947
rsAPI := roomserver.NewInternalAPI(processCtx, cfg, cm, &natsInstance, caches, caching.DisableMetrics)
948948
rsAPI.SetFederationAPI(nil, nil)
949-
uv := userVerifier{
949+
uv := mockUserVerifier{
950950
accessTokenToDeviceAndResponse: map[string]struct {
951951
Device *userapi.Device
952952
Response *util.JSONResponse
@@ -1023,7 +1023,7 @@ func testSendToDevice(t *testing.T, dbType test.DBType) {
10231023
caches := caching.NewRistrettoCache(128*1024*1024, time.Hour, caching.DisableMetrics)
10241024
defer close()
10251025
natsInstance := jetstream.NATSInstance{}
1026-
uv := userVerifier{
1026+
uv := mockUserVerifier{
10271027
accessTokenToDeviceAndResponse: map[string]struct {
10281028
Device *userapi.Device
10291029
Response *util.JSONResponse
@@ -1257,7 +1257,7 @@ func testContext(t *testing.T, dbType test.DBType) {
12571257
rsAPI := roomserver.NewInternalAPI(processCtx, cfg, cm, &natsInstance, caches, caching.DisableMetrics)
12581258
rsAPI.SetFederationAPI(nil, nil)
12591259

1260-
uv := userVerifier{
1260+
uv := mockUserVerifier{
12611261
accessTokenToDeviceAndResponse: map[string]struct {
12621262
Device *userapi.Device
12631263
Response *util.JSONResponse
@@ -1445,7 +1445,7 @@ func TestRemoveEditedEventFromSearchIndex(t *testing.T) {
14451445

14461446
rsAPI := roomserver.NewInternalAPI(processCtx, cfg, cm, &natsInstance, caches, caching.DisableMetrics)
14471447
rsAPI.SetFederationAPI(nil, nil)
1448-
uv := userVerifier{
1448+
uv := mockUserVerifier{
14491449
accessTokenToDeviceAndResponse: map[string]struct {
14501450
Device *userapi.Device
14511451
Response *util.JSONResponse

0 commit comments

Comments
 (0)