100 Commits

Author SHA1 Message Date
antirez
7983f6e884 ACL: return error when removing a non existing password.
Otherwise it's very simple for an human mistake to think a password is
removed because of a typo in the ACL SETUSER myuser <somepass command
line.
2019-02-11 17:01:58 +01:00
antirez
3822a465f2 ACL: ACLFreeUserAndKillClients(): free user later.
Soon or later we may have code in freeClient() that may have to deal
with ACLs. Imagine for instance the command proposed multiple times (not
sure if this will ever be accepted but still...):

    ONCLOSE DEL mykey

Accumulating commands to run when a client is disconnected. Now the
function is compatible with such use cases.

Related to #5829.
2019-02-11 16:28:31 +01:00
zhaozhao.zz
5cfa46fd14 ACL: kill the old users clients after load aclfile 2019-02-11 16:26:00 +01:00
antirez
48423054ea ACL: add command fingerprint for CAT subcommand. 2019-02-08 12:40:42 +01:00
antirez
fcd5ff1a76 ACL: add arity check in ACL command where missing. 2019-02-08 12:38:41 +01:00
antirez
66fd5e058f ACL: ignore modules commands when adding categories.
We can't trust modules commands flagging, so module commands must be
always explicitly added, with the exception of +@all that will include
everything. However something like +@readonly should not include command
from modules that may be potentially dangerous: our categories must be
safe and reliable and modules may not be like that.
2019-02-08 11:50:39 +01:00
antirez
87ce87e68c ACL: load ACL file at startup. Prevent silly configurations. 2019-02-07 17:20:03 +01:00
antirez
b1db13d8fa ACL: ACLLoadFromFile(): several errors fixed to make it work. 2019-02-07 17:07:51 +01:00
antirez
434489abb7 ACL: ACLLoadFromFile(), restore DefaultUser global. 2019-02-07 17:00:35 +01:00
antirez
68d127d7b6 ACL: fix fgets wrong buffer size. 2019-02-07 16:53:41 +01:00
antirez
735cb69f12 ACL: add assertion and fix comment typo. 2019-02-07 16:47:14 +01:00
antirez
61c7688b75 ACL: fix a few ACLLoadFromFile() errors and finish ACLFreeUsersSet(). 2019-02-07 16:20:49 +01:00
antirez
f7b86d2b8f ACL: WIP: preserve the old config on loading errors. 2019-02-07 12:57:21 +01:00
antirez
dfb8b08f30 ACL: implement LOAD subcommand plus some minor rafactoring. 2019-02-07 12:20:30 +01:00
antirez
a980f6168e ACL: fix and complete ACLLoadFromFile() loading step. 2019-02-07 12:04:25 +01:00
antirez
dc8605f944 ACL: now ACLLoadFromFile() validates against fake user. 2019-02-06 16:44:55 +01:00
antirez
1922f590d2 ACL: refactoring creation of unlinked users. 2019-02-06 16:19:17 +01:00
antirez
1050774a5b ACL: initial design for ACLLoadFromFile() function. 2019-02-06 12:39:11 +01:00
antirez
83bb71e27c ACL: change behavior of redefined user. Last line counts. 2019-02-05 10:52:05 +01:00
antirez
3aaed6dc39 ACL: fix user/rule inverted error message. 2019-02-04 16:58:35 +01:00
antirez
e3c8db819b ACL: implement ACLLoadConfiguredUsers(). 2019-02-04 16:35:15 +01:00
antirez
8dce634f5c ACL: make ACLAppendUserForLoading() able to report bad argument. 2019-02-04 13:00:58 +01:00
antirez
73efcef7cb ACL: initial appending of users in user loading list. 2019-02-04 12:55:48 +01:00
antirez
be0e1c0363 ACL: implement ACLAppendUserForLoading(). 2019-02-01 13:02:59 +01:00
antirez
276a5f296c ACL: skeleton and first ideas for postponed user loading. 2019-02-01 12:20:09 +01:00
antirez
fee5fa6f00 ACL: implement DELUSER. 2019-01-31 18:33:14 +01:00
antirez
1b257d00ca ACL: check arity of LIST / USERS subcommand. 2019-01-31 18:32:49 +01:00
antirez
b351e6bca2 ACL: don't emit useless flags in ACLDescribeUser(). 2019-01-31 17:04:42 +01:00
antirez
c2e174aacd ACL: implement LIST and USERS subcommands. 2019-01-31 17:01:32 +01:00
antirez
2e2796f4ff ACL: flags refactoring, function to describe user. 2019-01-31 16:49:22 +01:00
antirez
8cc57bb14c ACL: add function to return ACLSetUser() string errors. 2019-01-30 16:02:25 +01:00
antirez
9c615d8b6d ACL: don't allow patterns after the * pattern. 2019-01-30 15:59:45 +01:00
antirez
1cc239e516 ACL: implement keys field in ACL GETUSER. 2019-01-30 15:52:36 +01:00
antirez
8e8b92af60 ACL: free memory leak when freeing subcommands array. 2019-01-30 11:50:30 +01:00
antirez
af6455e73c ACL: return error when adding subcommands of fully added commands.
It's almost certainly an error from the user side.
2019-01-30 08:25:12 +01:00
antirez
735c0b2cdc ACL: remove leak in ACLSetUser(). 2019-01-30 08:20:31 +01:00
antirez
b04576898a ACL: ACLDescribeUserCommandRules(): emit subcommands. 2019-01-30 08:17:33 +01:00
antirez
2da78ff381 ACL: clear the subcommands array when setting category bits. 2019-01-30 08:09:05 +01:00
antirez
66374bfdae ACL: finish/fix ACLDescribeUserCommandRules() first version. 2019-01-29 18:54:21 +01:00
antirez
54daf88c7a ACL: ACLDescribeUserCommandRules(): add final commands. 2019-01-29 18:41:11 +01:00
antirez
fdab4184c5 ACL: initial design for ACLDescribeUserCommandRules() and helpers. 2019-01-29 17:25:05 +01:00
antirez
0fac4c665f ACL: refactoring and fix of adding subcommands to users. 2019-01-28 18:40:54 +01:00
antirez
78ec341983 ACL: reset the subcommands table on +@all / -@all.
This also is a bugfix because after -@all the previously enabled
subcommands would remain valid.
2019-01-28 18:27:42 +01:00
antirez
59380e8c9f ACL: fix crash when checking for subcommands. 2019-01-28 18:15:59 +01:00
antirez
5e3205ac83 ACL: remove leak when removing passwords/patterns. 2019-01-28 12:11:11 +01:00
antirez
af7ca7fb76 ACL: fix command bit check. 2019-01-26 12:51:43 +01:00
antirez
1b72830c3c ACL: remove the ALLCOMMANDS user flag at a safer place.
This fixes -@<category> as a side effect.
2019-01-25 13:27:33 +01:00
antirez
f41290486d ACL: fix command ID assignment off by one error. 2019-01-25 13:07:20 +01:00
antirez
9e4c9419db ACL: remove useless NULL check. 2019-01-25 13:00:49 +01:00
antirez
d495650ceb Merge branch 'unstable' of github.com:/antirez/redis into unstable 2019-01-25 13:00:30 +01:00