Commit Graph

288 Commits

Author SHA1 Message Date
Ilya Averyanov f230c20521 chore(authn): test HTTPS authn 2021-12-29 16:24:57 +03:00
Ilya Averyanov a7ca6cb39f chore(authn): test MongoDB authn via ssl connection 2021-12-29 16:24:52 +03:00
zhongwencool 121d906992 chore(log): add SLOG/3 to add meta info 2021-12-29 14:48:48 +08:00
zhouzb d26042703e chore: provide prepared_query and equery 2021-12-28 09:52:31 +08:00
Ilya Averyanov e2e2c98679 chore(authn): test Mysql authn via ssl connection 2021-12-27 11:16:31 +03:00
Ilya Averyanov 6de89d1207 chore(authn): test PostgreSQL authn via ssl connection 2021-12-27 11:16:31 +03:00
Ilya Averyanov 520629d6e2 chore(authn): test Redis authn via ssl connection 2021-12-27 11:16:31 +03:00
zhouzb 9769ddeb14 fix(authn): attempt to convert certificate content only when TLS is enabled 2021-12-24 13:40:13 +08:00
Thales Macedo Garitezi 34d6dbca61
chore(mix): simplify build by using rebar3 for umbrella apps
By treating the apps in the umbrella as dependencies to be managed and
built by rebar3, we can simplify the maintenance of the release, at
the cost of increased build times: using Mix as before, it could track
changed files better than using rebar.  But the complexity and
possibility of discrepancies make it using rebar much more compelling.
2021-12-22 09:40:01 -03:00
Thales Macedo Garitezi 917575de5a
chore(mix): minimal elixir mix release build
This commit enables a minimal working build of EMQX release using
Mix.  However, to properly start the release, several configuration
steps are still missing.  A `mix_release.sh` script does a few hacks
to get the release built with Mix to start properly, by first assuming
that `make emqx` has been run prior to the release, ran once to
generate the `app.*.config` files, and then it copies that and some
other files to the expected places.

Also, `emqx_telemetry` hangs the start procedure because it thinks
it's in an official release and tries to make a request.  We disable
it temporarily via config just to get a working build for now.
2021-12-21 13:51:22 -03:00
Ilya Averyanov b8a68d7a9f
Merge pull request #6384 from savonarola/refactor-password-hashing
refactor(authn): unify password hashing
2021-12-14 16:21:02 +03:00
Ilya Averyanov 708d9cfc6c refactor(authn): restore pbkdf2 password hashing functionality 2021-12-13 21:40:09 +03:00
Zaiming (Stone) Shi 41aa958ac9 refactor(authn): root type as array of union
Deleted the wrapping union.
i.e. previously it's
union([union([...]), array(union([...]))]).
not it's
array(union([...]))

It is after-all a lazy type, and the dynamic check allows
single-elemented arrays not to have `[]` around it.

the old union of array of union schema was just adding confusion
2021-12-11 22:20:53 +01:00
Ilya Averyanov 2b0a3e8ba3 refactor(authn): unify password hashing 2021-12-07 23:38:26 +03:00
Zaiming (Stone) Shi 68a7c096b0
Merge pull request #6362 from zmstone/emqx-config-put-raw-with-env-vars
fix: config put raw with env vars
2021-12-06 09:22:32 +01:00
Zaiming (Stone) Shi 89614245f6 test: use macro for authentication root name 2021-12-06 08:00:42 +01:00
Zaiming (Stone) Shi 5d3cb6ae1c refactor(authn): align authn config root name
authn configs are checked independently per-auth provider,
this was to make authn providers more plugable.

in order to make environment variable overrides work for authn,
we need to have a unified view of the config layout,
no matter from root level, or partially checking per-provider
config independently, i.e. we try to use the same config envelop.
2021-12-04 09:33:14 +01:00
zhouzb 1dfc37cd18 test(authn): fix test cases 2021-12-03 15:55:34 +08:00
zhouzb e1bcbd012c feat(authn): support sync configuration in the cluster 2021-12-03 14:14:40 +08:00
JimMoen 68af284570 fix(authz): http source create and update 2021-12-02 10:12:10 +08:00
zhouzb b983a18cdf fix(auth): replace query with cmd 2021-12-01 20:24:43 +08:00
zhouzb 6b8997cbda fix(authn): fix superuser when missing is_superuser_field 2021-12-01 09:23:36 +08:00
Ilya Averyanov 6b65151f69
Merge pull request #6325 from savonarola/test-authn-resources-scram
chore(authn): add SCRAM mechanism tests
2021-11-30 12:16:20 +03:00
Ilya Averyanov e6d7e59c18
Merge pull request #6278 from savonarola/test-authn-resources-mongo
chore(authn): add MongoDB backend tests
2021-11-29 22:27:52 +03:00
Ilya Averyanov 390575eafb chore(authn): add MongoDB backend tests 2021-11-29 21:17:56 +03:00
Ilya Averyanov 4580c03ebc chore(authn): add SCRAM mechanism tests 2021-11-29 20:49:45 +03:00
Ilya Averyanov 726e25d6ae chore(authn): add JWKS backend tests 2021-11-26 18:40:21 +03:00
zhongwencool f697028b70
Fix ping not return pong (#6285)
* fix: ./bin/emqx ping return pong

* chore: waiting longer for logger flush log to disk

* fix: change swagger page's limit from 100 to 1000

* chore: type wrong

* fix: sync log to disk by logger_disk_log_h:filesync
2021-11-26 17:02:45 +08:00
tigercl 124ba7a071
Merge pull request #6311 from emqx/release-5.0-beta.2
Sync bug fixes
2021-11-26 14:24:19 +08:00
zhouzb 349fd1608b style(authn): improve code formatting 2021-11-26 10:29:57 +08:00
Ilya Averyanov e6c2600718 chore(authn): add HTTP backend tests 2021-11-25 15:09:13 +03:00
zhouzb ecd3c9f85c test(authn): add test cases for jwt authn 2021-11-25 19:03:11 +08:00
zhouzb 15654b5b28 fix(authn): add handling of invalid secret 2021-11-25 17:17:44 +08:00
zhouzb d88bfdfe14 fix(authn): verify claims type is wrong 2021-11-25 16:42:08 +08:00
Ilya Averyanov ac3707e4a9 fix(authn): handle authn backends own validations 2021-11-24 14:05:46 +03:00
Ilya Averyanov 8cc0b43de7 chore(authn): add MySQL & PostgreSQL backend tests 2021-11-23 11:52:51 +03:00
DDDHuang 21bd9bba55
fix: generate palce holder (#6250)
* fix: generate place holder

* style: whitespace cleanup

* refactor(authz): placeholder for athuz

* test: authz test suite for placeholder

* fix: lw place holder suite

* fix: auth n redis suite

Co-authored-by: JimMoen <LnJimMoen@outlook.com>
2021-11-23 10:56:43 +08:00
Shawn 6fb464fc05
Merge pull request #6059 from tigercl/fix/ssl
fix(ssl): fix API returns the certificate file name instead of the certificate content
2021-11-23 10:38:12 +08:00
JianBo He 50542ec441
Merge pull request #6248 from HJianBo/gw-improve-apis-1
Add authentication data management APIs for gateway
2021-11-23 09:12:04 +08:00
zhouzb 2b282b9666 fix(ssl): Return the content of certificates in HTTP response 2021-11-22 23:30:05 +01:00
Ilya Averyanov 071c2c99e8 refactor(authn resources): add `emqx_resource` and `emqx_authn` tests 2021-11-22 21:08:04 +03:00
JianBo He 1e2eac0fce test(gw): add tests for authm data-mgmt 2021-11-22 17:38:59 +08:00
JianBo He 4f752fb5ab chore(gw): fix elvis warnings 2021-11-22 17:38:59 +08:00
JianBo He f033fad7b3 refactor(gw): deps on emqx_dasboard_swagger 2021-11-22 17:38:59 +08:00
Shawn f0c61068e8 fix(authn): test cases issues 2021-11-22 17:35:33 +08:00
tigercl 6da039cf4f
Merge pull request #6231 from tigercl/fix/http-authn
fix(authn): fix pick worker error and match more http response
2021-11-22 09:10:44 +08:00
Ilya Averyanov c86887491c fix(authn): transfer chain tab to emqx_authentication_sup
To preserve configuration after emqx_authentication crashes.
2021-11-19 16:41:22 +03:00
zhouzb 980a6ceae9 fix(authn): fix pick worker error and match more http response 2021-11-19 11:19:52 +08:00
DDDHuang 7c48bcabed
fixt: generate api (#6124)
* fix: generate api

* fix: banned suite

* fix: generate api bad rpc

* fix: bad message suite

* fix: create banned with check existed
2021-11-17 10:55:48 +08:00
JimMoen c05ecdbcb8
fix(api): DELETE success wrongly returned code 200 (#6135) 2021-11-16 09:28:57 +08:00
Zaiming (Stone) Shi 9761fe2f6d
Merge pull request #6009 from tigercl/fix/authn
fix(authn): fix handling of query result
2021-11-15 13:32:56 +01:00
JimMoen 106aa559e0 fix(api): DELETE success wrongly returned code 200 2021-11-15 16:30:44 +08:00
Ilya Averyanov 4f0311b6f8
Merge pull request #6093 from savonarola/add-authn-tests
chore(authn mnesia): reimplement emqx_authn_mnesia provider tests
2021-11-10 21:20:46 +03:00
Ilya Averyanov a0a88e23b0 chore(authn mnesia): reimplement emqx_authn_mnesia provider tests 2021-11-10 17:13:04 +03:00
Ilya Averyanov a84b84aac9 refactor(authn api): reformat for elvis compliance 2021-11-05 19:36:26 +03:00
Ilya Averyanov 1e036bf74d refactor(authn api): add more schema examples 2021-11-05 16:12:14 +03:00
Zaiming (Stone) Shi 3b02366a5b
Merge pull request #6064 from zmstone/style-check-newline-at-eof
Style: check newline at EOF
2021-11-04 18:01:45 +01:00
Zaiming Shi 56e2a9741f style: ensure newline at EOF for all files 2021-11-04 14:40:14 +01:00
zhouzb 48ddd056b5 test(authn): add test cases for authn 2021-11-04 10:03:34 +08:00
zhouzb ca4bb100ec fix(authn): fix bad parsing for postgresql SQL 2021-11-04 10:01:54 +08:00
Ilya Averyanov 796553b5ea fix(authn api): eliminate possible atom leak 2021-11-01 16:51:48 +03:00
zhouzb 29fb9b3361 fix(authn): fix bad type of hash 2021-11-01 18:49:13 +08:00
Ilya Averyanov 800b4b32c7
refactor(authn api): use config schemas for request validations (#5999) 2021-11-01 17:52:03 +08:00
zhouzb a712daaebc fix(authn): fix bad list comprehension 2021-10-27 15:08:02 +08:00
William Yang 1c93331e34 perf(pool): emqx_authn_http pool type hash 2021-10-27 08:43:34 +02:00
zhouzb 7311132d49 fix(authn): fix handling of query result 2021-10-27 09:22:17 +08:00
JimMoen 4a07d5e1f3 refactor(paginate): use exported fun call `{M,F}` 2021-10-26 16:16:37 +08:00
JimMoen 3683ba13ee fix(authn): users pagination on spec listener_id and authn_id 2021-10-26 16:16:37 +08:00
JimMoen eb452bd237 feat(authn_scram): authn_scram users page query 2021-10-26 16:16:37 +08:00
JimMoen 0bd5cd9336 feat(authn): authn users page query 2021-10-26 16:16:37 +08:00
JimMoen a399ac20e9 fix(authn): api description using binary string 2021-10-26 16:16:37 +08:00
Zaiming (Stone) Shi 666b319729
Merge pull request #5989 from zmstone/refactor-ssl-certs-lib
refactor(tls): move ssl files handling to emqx_tls_lib
2021-10-25 12:42:29 +02:00
tigercl 0d53ea9db7
Merge pull request #5974 from tigercl/fix/mysql-query
fix(authn): fix sql parse for mysql
2021-10-25 10:38:15 +08:00
Zaiming Shi a7413bc11e fix(authn): save certificates to certs dir 2021-10-24 16:21:57 +02:00
Zaiming Shi 71d2e6bebd refactor(authz): call emqx_tls_lib to save & read SSL files 2021-10-24 10:44:47 +02:00
Ilya Averyanov e37ecc10a6 style(behaviour attrs): unify behaviour declarations 2021-10-21 15:10:59 +03:00
zhouzb 7fdcca587a fix(authn): fix handling of pgsql response 2021-10-21 17:41:16 +08:00
zhouzb e071a10fee fix(authn): no longer use single quotes to wrap placeholders 2021-10-21 17:14:08 +08:00
zhouzb 3a834a822f fix(authn): fix sql parse for mysql 2021-10-21 17:07:24 +08:00
Zaiming (Stone) Shi ed069cfecc
Merge pull request #5963 from zmstone/refactor-authn-schema
refactor(authn): check authenticator config with provider module
2021-10-21 08:07:48 +02:00
tigercl 45b484a26a
Merge pull request #5967 from tigercl/fix/authn-mysql
fix(authn): fix placeholders are not replaced correctly
2021-10-21 10:20:05 +08:00
Zaiming Shi ce5b456872 refactor(authn): make schema doc generation work 2021-10-20 17:42:06 +02:00
Zaiming Shi fa91e5f583 fix(authn): allow single authenticator instance from config 2021-10-20 15:06:08 +02:00
Zaiming Shi d468c21e61 fix(authn): rename config key http-server to http 2021-10-20 14:36:37 +02:00
Zaiming Shi 72c26931d7 fix: fill string fields' default value with binary 2021-10-20 11:52:30 +02:00
Zaiming Shi 1b9c082563 refactor(authn): check authenticator config with provider module
mainly two changes:

1. the schema is simplified at root level, per-authenticator checks
   are done after the type can be identified
2. the config handling part is split out from emqx_authentication
   module to emqx_authentication_config module
2021-10-20 10:13:11 +02:00
zhouzb 4ae38b7c6a fix(authn): fix placeholders are not replaced correctly 2021-10-20 10:14:47 +08:00
k32 d14b8e7da9 chore(mria): ekka_rlog -> mria_rlog 2021-10-18 22:04:05 +02:00
k32 326923850c chore(mria): Get rid of copy_mnesia callback 2021-10-18 22:04:05 +02:00
k32 9965d6e028 chore(mria): ekka_mnesia:create_table -> mria:create_table 2021-10-18 22:04:05 +02:00
k32 b515a45a4f chore(mria): Rename module: ekka_mnesia -> mria 2021-10-18 22:04:05 +02:00
Tobias Lindahl aa19c2a908 chore: Remove emqx_ct_helpers as dependency 2021-10-15 10:40:57 +02:00
zhongwencool 2de5e0157b
chore(doc): replace : by - in namespace (#5920) 2021-10-14 14:48:39 +08:00
tigercl 3df33da9ac
Merge pull request #5919 from tigercl/fix/scram-users
fix(authn): fix bad user_id for scram
2021-10-13 13:56:29 +08:00
zhouzb ab060198a6 fix(authn): fix bad user_id for scram 2021-10-13 11:35:51 +08:00
lafirest 3524942766 fix: change all ~s in io format to ~ts
we should use unicode to replace latin1
2021-10-12 15:09:24 +08:00
tigercl 79685a77ba
Merge branch 'master' into fix/authn2 2021-09-28 09:27:08 +08:00
zhouzb 352c87a586 chore(authn): delete useless func 2021-09-28 09:22:59 +08:00
zhouzb 2262bf508e chore(authn): improve code 2021-09-27 14:50:22 +08:00
lafirest 6e3ec6c9db fix(schema): fix authn/z's schema time unit 2021-09-26 14:41:46 +08:00
zhouzb 096e85dc14 chore(authn): improve log and fix disabled authentication still working 2021-09-26 11:31:19 +08:00
zhouzb 11bdfcb8f0 fix(authn): fix bugs in http and pgsql authn 2021-09-24 17:15:10 +08:00
zhouzb e31840d943 fix(authn): add timeout option for mysql connector 2021-09-24 17:15:10 +08:00
Zaiming Shi 4f638b8242 fix(schema): upgrade to hocon 0.19.5
renamed no_conversion option to only_fill_defaults
2021-09-23 16:57:15 +02:00
zhouzb 79026d5900 chore(authn): add supervisor for authn and fix checking errors 2021-09-23 10:11:50 +08:00
zhouzb bb4e5fdb4f chore(authn): fix dialyzer 2021-09-18 09:14:03 +08:00
zhouzb 69755ad3fb fix(authn): fix bug in authn 2021-09-18 09:14:03 +08:00
zhouzb 35a4a05f03 feat(clear certs): clear certs when deleting instance 2021-09-18 09:11:41 +08:00
Zaiming Shi 0877fb5569 refactor(authn): register providers in batch 2021-09-16 23:17:50 +02:00
Zaiming Shi 3dcccc0b33 refactor(authn): call lists:foreach instaed of list comprehension 2021-09-16 23:17:50 +02:00
JimMoen deac54c847 chore(for editor): Add comments for Emacs major mode. 2021-09-16 15:43:30 +08:00
tigercl c4403e886d
Merge pull request #5732 from tigercl/feat/upload-certs
feat(upload certs): save certs to file
2021-09-15 10:58:31 +08:00
zhouzb ce6c24a866 fix(authn): fix spelling error 2021-09-14 17:42:07 +08:00
zhouzb 1a61640b15 feat(upload certs): serialize errors about saving cert 2021-09-14 15:07:57 +08:00
zhouzb ee178ccea9 feat(upload certs): support return cert content by http api 2021-09-14 14:59:13 +08:00
zhouzb 63d3a7b525 feat(upload certs): save certs to file 2021-09-14 13:38:09 +08:00
zhouzb 6b521acd6f fix(authn): fix type error for http headers 2021-09-10 17:31:16 +08:00
zhouzb 5cea9a4edc chore(authn): add api spec 2021-09-10 15:55:37 +08:00
zhouzb d30d7d5710 chore(authn): update api spec for built in database 2021-09-09 17:34:39 +08:00
zhouzb 564896d64a chore(authn): update api spec 2021-09-09 17:17:27 +08:00
zhouzb c6e52b32fb chore(authn): improve code of moving authenticator 2021-09-09 09:32:18 +08:00
zhouzb 7d312a630b chore(authn): provide easy-to-read hints for more errors 2021-09-08 16:35:54 +08:00
zhouzb 29cad91a47 fix(authn): fix superuser in mongodb authn 2021-09-08 10:58:00 +08:00
zhouzb b5ded1ece0 chore(authn): add the serialization of more errors 2021-09-08 10:46:18 +08:00
zhouzb ce851e5b0f chore(authn): miss redis 2021-09-08 10:32:54 +08:00
zhouzb 8531e9ce11 chore(authn): rename superuser to is_superuser 2021-09-08 09:53:39 +08:00
zhouzb be38bcc5cc chore(authn): adapt listener id type 2021-09-08 09:46:47 +08:00
zhouzb c68edb3905 chore(authn): update apis of user 2021-09-07 17:29:05 +08:00
zhouzb 627de1d58c fix(test): fix test case 2021-09-07 10:29:45 +08:00
zhouzb e998770f2e refactor(authn): refactor to support global and listener authentication 2021-09-06 18:46:08 +08:00
Zaiming Shi ec13463f4a refactor(schema): prepare for hocon schema doc generation 2021-09-03 11:02:31 +02:00
Zaiming Shi 5165fd6b30 refactor(schema): implement new hocon_schema callbacks 2021-08-30 09:56:03 +08:00
Zaiming (Stone) Shi c64af6a78c
Merge pull request #5532 from zhongwencool/master
feat(emqx_cluster_call): ensure the consistency of resources
2021-08-27 09:40:31 +02:00
Shawn 436dba83b8 feat(logger): update configs for logger at runtime 2021-08-26 18:31:44 +08:00
zhongwencool 73238ed81f feat: emqx_resource support cluster_call 2021-08-26 17:23:39 +08:00
Shawn cc56c74964 refactor(emqx): update the tests for the new zone,listener config 2021-08-26 09:11:30 +08:00
Turtle bc325e55fc fix(authn-authz-api): fix authn/authz test cases fail 2021-08-24 18:19:21 +08:00
Turtle e0c05242a7 refactor(minirest-callback): refactor minirest callback function 2021-08-24 18:19:21 +08:00
k32 ecd7964a5d fix(authn): Use local content shard for the chain table 2021-08-21 17:49:00 +02:00
k32 9c74fa42a5 chore(rlog): Use the new method of creating shards 2021-08-21 17:47:53 +02:00
Shawn f3efc89192
refactor(config): replace all ':' with '=' in the *.conf (#5531) 2021-08-19 19:57:42 +08:00
zhouzb f0ba6af660 chore(authn): fix dialyzer 2021-08-19 16:01:55 +08:00
zhouzb e6c01cb6e6 fix(undefined function): fix undefined function 2021-08-19 16:01:55 +08:00
zhouzb e5892d16e5 feat(auth): support hot config 2021-08-19 16:01:38 +08:00
zhouzb e6f9767066 feat(authn): support superuser 2021-08-19 15:59:26 +08:00
zhouzb 429def6b95 fix(authn): fix http api spec 2021-08-19 15:59:26 +08:00
zhouzb 3f2ca5282c chore(authn): remove implied schema 2021-08-19 15:59:26 +08:00
zhouzb b7bc8b8cac feat(authn): improve apis of moving authenticators 2021-08-19 15:59:26 +08:00
zhouzb 60f0e8e5a5 refactor(authn): replace mnesia with ets table 2021-08-19 15:59:26 +08:00
zhouzb 61da3a4fd7 feat(authn hot config): initial support for hot config 2021-08-19 15:59:26 +08:00