From 56d48598415264a91689914d3259309f7eab1666 Mon Sep 17 00:00:00 2001 From: Travis Ralston Date: Fri, 20 Jul 2018 22:56:44 -0600 Subject: [PATCH] Ensure appservices have their devices checked The regular device check will return the device for the appservice's bot user instead of going through the user_id branch. The check has been moved to below the user_id check to ensure the right virtual user's device is chosen. --- .../matrix-org/dendrite/clientapi/auth/auth.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/github.com/matrix-org/dendrite/clientapi/auth/auth.go b/src/github.com/matrix-org/dendrite/clientapi/auth/auth.go index 80df0e728..f70548102 100644 --- a/src/github.com/matrix-org/dendrite/clientapi/auth/auth.go +++ b/src/github.com/matrix-org/dendrite/clientapi/auth/auth.go @@ -65,12 +65,6 @@ type Data struct { func VerifyUserFromRequest( req *http.Request, data Data, ) (*authtypes.Device, *util.JSONResponse) { - // Try to find local user from device database - dev, devErr := verifyAccessToken(req, data.DeviceDB) - if devErr == nil { - return dev, verifyUserParameters(req) - } - // Try to find the Application Service user token, err := extractAccessToken(req) if err != nil { @@ -128,6 +122,12 @@ func VerifyUserFromRequest( return &dev, nil } + // Try to find local user from device database + dev, devErr := verifyAccessToken(req, data.DeviceDB) + if devErr == nil { + return dev, verifyUserParameters(req) + } + return nil, &util.JSONResponse{ Code: http.StatusUnauthorized, JSON: jsonerror.UnknownToken("Unrecognized access token"),