block sync if auth checks fail

This commit is contained in:
Neil Johnson 2018-08-09 12:26:27 +01:00
parent 3dce9050cf
commit 69ce057ea6
2 changed files with 18 additions and 13 deletions

View File

@ -209,14 +209,12 @@ class SyncHandler(object):
Deferred[SyncResult]
"""
yield self.auth.check_auth_blocking()
defer.returnValue(
self.response_cache.wrap(
sync_config.request_key,
self._wait_for_sync_for_user,
sync_config, since_token, timeout, full_state,
)
res = yield self.response_cache.wrap(
sync_config.request_key,
self._wait_for_sync_for_user,
sync_config, since_token, timeout, full_state,
)
defer.returnValue(res)
@defer.inlineCallbacks
def _wait_for_sync_for_user(self, sync_config, since_token, timeout,

View File

@ -14,11 +14,14 @@
# limitations under the License.
from twisted.internet import defer
from synapse.api.errors import AuthError
from synapse.api.filtering import DEFAULT_FILTER_COLLECTION
from synapse.handlers.sync import SyncConfig, SyncHandler
from synapse.types import UserID
import tests.unittest
import tests.utils
from tests.utils import setup_test_homeserver
from synapse.handlers.sync import SyncHandler, SyncConfig
from synapse.types import UserID
class SyncTestCase(tests.unittest.TestCase):
@ -32,11 +35,15 @@ class SyncTestCase(tests.unittest.TestCase):
@defer.inlineCallbacks
def test_wait_for_sync_for_user_auth_blocking(self):
sync_config = SyncConfig(
user=UserID("@user","server"),
filter_collection=None,
user=UserID("@user", "server"),
filter_collection=DEFAULT_FILTER_COLLECTION,
is_guest=False,
request_key="request_key",
device_id="device_id",
)
res = yield self.sync_handler.wait_for_sync_for_user(sync_config)
print res
# Ensure that an exception is not thrown
yield self.sync_handler.wait_for_sync_for_user(sync_config)
self.hs.config.hs_disabled = True
with self.assertRaises(AuthError):
yield self.sync_handler.wait_for_sync_for_user(sync_config)