25
1
mirror of https://github.com/processone/ejabberd.git synced 2024-11-20 16:15:59 +01:00
xmpp.chapril.org-ejabberd/test
Evgeniy Khramtsov 633b68db11 Use cache for authentication backends
The commit introduces the following API incompatibilities:

In ejabberd_auth.erl:
* dirty_get_registered_users/0 is renamed to get_users/0
* get_vh_registered_users/1 is renamed to get_users/1
* get_vh_registered_users/2 is renamed to get_users/2
* get_vh_registered_users_number/1 is renamed to count_users/1
* get_vh_registered_users_number/2 is renamed to count_users/2

In ejabberd_auth callbacks
* plain_password_required/0 is replaced by plain_password_required/1
  where the argument is a virtual host
* store_type/0 is replaced by store_type/1 where the argument is
  a virtual host
* set_password/3 is now an optional callback
* remove_user/3 callback is no longer needed
* remove_user/2 now should return `ok | {error, atom()}`
* is_user_exists/2 now must only be implemented for backends
  with `external` store type
* check_password/6 is no longer needed
* check_password/4 now must only be implemented for backends
  with `external` store type
* try_register/3 is now an optional callback and should return
  `ok | {error, atom()}`
* dirty_get_registered_users/0 is no longer needed
* get_vh_registered_users/1 is no longer needed
* get_vh_registered_users/2 is renamed to get_users/2
* get_vh_registered_users_number/1 is no longer needed
* get_vh_registered_users_number/2 is renamed to count_users/2
* get_password_s/2 is no longer needed
* get_password/2 now must only be implemented for backends with
  `plain` or `scram` store type

Additionally, the commit introduces two new callbacks:
* use_cache/1 where the argument is a virtual host
* cache_nodes/1 where the argument is a virtual host

New options are also introduced: `auth_use_cache`, `auth_cache_missed`,
`auth_cache_life_time` and `auth_cache_size`.
2017-05-11 14:37:21 +03:00
..
ejabberd_SUITE_data Add Riak as mod_carboncopy RAM backend 2017-04-15 14:41:14 +03:00
elixir-config Support for Elixir configuration file #1208 2016-09-08 11:37:14 +02:00
acl_test.exs Fix elixir tests 2017-05-04 12:17:41 +02:00
announce_tests.erl Cleanup file headers 2017-01-03 15:58:52 +01:00
carbons_tests.erl Change routing API 2017-02-16 11:10:24 +03:00
csi_tests.erl Cleanup file headers 2017-01-03 15:58:52 +01:00
ejabberd_admin_test.exs Cleanup file headers 2017-01-03 15:58:52 +01:00
ejabberd_auth_mock.exs Update copyright date automatically (#1442) 2017-01-02 21:42:06 +01:00
ejabberd_commands_mock_test.exs Fix elixir tests 2017-05-04 12:17:41 +02:00
ejabberd_commands_test.exs Fix elixir tests 2017-04-21 12:17:23 +02:00
ejabberd_cyrsasl_test.exs Don't check result of jid.start 2017-04-26 09:50:49 +02:00
ejabberd_hooks_test.exs Update copyright date automatically (#1442) 2017-01-02 21:42:06 +01:00
ejabberd_oauth_mock.exs Update copyright date automatically (#1442) 2017-01-02 21:42:06 +01:00
ejabberd_sm_mock.exs Adapt to new ejabberd_sm changes 2017-01-23 19:34:29 +01:00
ejabberd_SUITE.erl Add Riak as mod_carboncopy RAM backend 2017-04-15 14:41:14 +03:00
elixir_SUITE.erl Cleanup file headers 2017-01-03 15:58:52 +01:00
example_tests.erl Cleanup file headers 2017-01-03 15:58:52 +01:00
jid_test.exs Update copyright date automatically (#1442) 2017-01-02 21:42:06 +01:00
ldap_srv.erl Cleanup file headers 2017-01-03 15:58:52 +01:00
mam_tests.erl Don't call deprecated jid functions from the test suite 2017-03-07 18:11:28 +03:00
mix_tests.erl Cleanup file headers 2017-01-03 15:58:52 +01:00
mod_admin_extra_test.exs Adapt get_last tests to new output 2017-02-24 12:08:57 +01:00
mod_http_api_mock_test.exs Fix elixir tests 2017-04-21 12:17:23 +02:00
mod_http_api_test.exs Fix elixir tests 2017-04-21 12:17:23 +02:00
mod_last_mock.exs Update copyright date automatically (#1442) 2017-01-02 21:42:06 +01:00
mod_legacy.erl Don't validate an option in gen_mod:get*opt() functions 2017-04-30 19:01:47 +03:00
mod_roster_mock.exs Update copyright date automatically (#1442) 2017-01-02 21:42:06 +01:00
muc_tests.erl Don't validate an option in gen_mod:get*opt() functions 2017-04-30 19:01:47 +03:00
offline_tests.erl ejabberd_sm: Fix routing of headline messages 2017-04-05 21:03:13 +02:00
privacy_tests.erl Don't forget to disconnect 2017-04-14 20:32:26 +03:00
proxy65_tests.erl Don't call deprecated jid functions from the test suite 2017-03-07 18:11:28 +03:00
pubsub_tests.erl Don't call deprecated jid functions from the test suite 2017-03-07 18:11:28 +03:00
README Improve test suite explanation 2014-07-10 13:54:51 +04:00
README-quicktest.md Add logger macro to help troubleshooting Elixir tests 2016-04-01 11:11:42 +02:00
replaced_tests.erl Re-enable "replaced" tests 2017-02-21 12:53:08 +03:00
roster_tests.erl Don't call deprecated jid functions from the test suite 2017-03-07 18:11:28 +03:00
sm_tests.erl Test stream management queue overload 2017-02-21 12:38:03 +03:00
suite.erl Use cache for authentication backends 2017-05-11 14:37:21 +03:00
suite.hrl Get rid of substitute_forwarded 2016-11-18 11:51:57 +01:00
test_helper.exs Add ability to run test with Elixir mix 2016-07-26 12:17:37 +02:00
vcard_tests.erl Don't call deprecated jid functions from the test suite 2017-03-07 18:11:28 +03:00

You need MySQL, PostgreSQL and Riak up and running.
MySQL should be accepting TCP connections on localhost:3306.
PostgreSQL should be accepting TCP connections on localhost:5432.
Riak should be accepting TCP connections on localhost:8087.
MySQL and PostgreSQL should grant full access to user 'ejabberd_test' with
password 'ejabberd_test' on database 'ejabberd_test'.
Riak should be configured with leveldb as a database backend and -pz
should be pointed to the directory with ejabberd BEAM files.

Here is a quick setup example:

------------------
  PostgreSQL
------------------
$ psql template1
template1=# CREATE USER ejabberd_test WITH PASSWORD 'ejabberd_test';
template1=# CREATE DATABASE ejabberd_test;
template1=# GRANT ALL PRIVILEGES ON DATABASE ejabberd_test TO ejabberd_test;

-------------------
  MySQL
-------------------
$ mysql
mysql> CREATE USER 'ejabberd_test'@'localhost' IDENTIFIED BY 'ejabberd_test';
mysql> CREATE DATABASE ejabberd_test;
mysql> GRANT ALL ON ejabberd_test.* TO 'ejabberd_test'@'localhost';

-------------------
  Riak
-------------------
$ cat /etc/riak/vm.args
...
## Map/Reduce path
-pz /path/to/ejabberd/ebin
...

For version < 2.x:

$ cat /etc/riak/app.config:
...
 {riak_kv, [
            {storage_backend, riak_kv_eleveldb_backend},
...

For version >= 2.x:

$ cat /etc/riak/riak.conf:
...
storage_backend = leveldb
...