Example #1
0
 def setUp(self):
     super(ServerAuthenticationMiddlewareTestCase, self).setUp()
     app = mock.Mock()
     self._state = CouchServerState(self.couch_url)
     app.state = self._state
     self.auth_middleware = SoledadTokenAuthMiddleware(app)
     self._authorize('valid-uuid', 'valid-token')
Example #2
0
class ServerAuthenticationMiddlewareTestCase(CouchDBTestCase):
    def setUp(self):
        super(ServerAuthenticationMiddlewareTestCase, self).setUp()
        app = mock.Mock()
        self._state = CouchServerState(self.couch_url)
        app.state = self._state
        self.auth_middleware = SoledadTokenAuthMiddleware(app)
        self._authorize('valid-uuid', 'valid-token')

    def _authorize(self, uuid, token):
        token_doc = {}
        token_doc['_id'] = sha512(token).hexdigest()
        token_doc[self._state.TOKENS_USER_ID_KEY] = uuid
        token_doc[self._state.TOKENS_TYPE_KEY] = \
            self._state.TOKENS_TYPE_DEF
        dbname = self._state._tokens_dbname()
        db = self.couch_server.create(dbname)
        db.save(token_doc)
        self.addCleanup(self.delete_db, db.name)

    def test_authorized_user(self):
        is_authorized = self.auth_middleware._verify_authentication_data
        self.assertTrue(is_authorized('valid-uuid', 'valid-token'))
        self.assertFalse(is_authorized('valid-uuid', 'invalid-token'))
        self.assertFalse(is_authorized('invalid-uuid', 'valid-token'))
        self.assertFalse(is_authorized('eve', 'invalid-token'))
Example #3
0
 def setUp(self):
     super(ServerAuthenticationMiddlewareTestCase, self).setUp()
     app = mock.Mock()
     self._state = CouchServerState(self.couch_url)
     app.state = self._state
     self.auth_middleware = SoledadTokenAuthMiddleware(app)
     self._authorize("valid-uuid", "valid-token")
Example #4
0
class ServerAuthenticationMiddlewareTestCase(CouchDBTestCase):
    def setUp(self):
        super(ServerAuthenticationMiddlewareTestCase, self).setUp()
        app = mock.Mock()
        self._state = CouchServerState(self.couch_url)
        app.state = self._state
        self.auth_middleware = SoledadTokenAuthMiddleware(app)
        self._authorize("valid-uuid", "valid-token")

    def _authorize(self, uuid, token):
        token_doc = {}
        token_doc["_id"] = sha512(token).hexdigest()
        token_doc[self._state.TOKENS_USER_ID_KEY] = uuid
        token_doc[self._state.TOKENS_TYPE_KEY] = self._state.TOKENS_TYPE_DEF
        dbname = self._state._tokens_dbname()
        db = self.couch_server.create(dbname)
        db.save(token_doc)
        self.addCleanup(self.delete_db, db.name)

    def test_authorized_user(self):
        is_authorized = self.auth_middleware._verify_authentication_data
        self.assertTrue(is_authorized("valid-uuid", "valid-token"))
        self.assertFalse(is_authorized("valid-uuid", "invalid-token"))
        self.assertFalse(is_authorized("invalid-uuid", "valid-token"))
        self.assertFalse(is_authorized("eve", "invalid-token"))
Example #5
0
def application(environ, start_response):
    conf = load_configuration('/etc/soledad/soledad-server.conf')
    conf = conf['soledad-server']
    state = CouchServerState(conf['couch_url'], create_cmd=conf['create_cmd'])
    SoledadBackend.BATCH_SUPPORT = conf['batching']
    # WSGI application that may be used by `twistd -web`
    application = GzipMiddleware(SoledadTokenAuthMiddleware(SoledadApp(state)))

    return application(environ, start_response)
Example #6
0
 def test_wrong_couch_version_raises(self):
     wrong_schema_version = SCHEMA_VERSION + 1
     self.db.create({
         '_id': CONFIG_DOC_ID,
         SCHEMA_VERSION_KEY: wrong_schema_version
     })
     with pytest.raises(WrongCouchSchemaVersionError):
         CouchServerState(self.couch_url,
                          create_cmd='/bin/echo',
                          check_schema_versions=True)
Example #7
0
 def make_app(self):
     self.request_state = CouchServerState(self.couch_url)
     return self.make_app_with_state(self.request_state)
Example #8
0
def _get_backend_from_config():
    conf = get_config()
    if conf['blobs']:
        return BlobsServerState("filesystem", blobs_path=conf['blobs_path'])
    return CouchServerState(conf['couch_url'])
Example #9
0
def _get_couch_state(conf):
    state = CouchServerState(conf['couch_url'], create_cmd=conf['create_cmd'])
    SoledadBackend.BATCH_SUPPORT = conf.get('batching', False)
    return state
Example #10
0
 def test_missing_config_doc_raises(self):
     self.db.create({})
     with pytest.raises(MissingCouchConfigDocumentError):
         CouchServerState(self.couch_url,
                          create_cmd='/bin/echo',
                          check_schema_versions=True)
Example #11
0
def _get_couch_state():
    conf = _load_config()
    state = CouchServerState(conf['couch_url'], create_cmd=conf['create_cmd'],
                             check_schema_versions=True)
    SoledadBackend.BATCH_SUPPORT = conf.get('batching', False)
    return state