Commit Graph

166 Commits

Author SHA1 Message Date
antirez
f311a529be Make PR #5872 more compatible with Redis coding style. 2019-02-27 09:34:50 +01:00
Salvatore Sanfilippo
0dcb003887
Merge pull request #5872 from madolson/dev-unstable-acl-setuser-fix
Updated acl setuser to be all or nothing
2019-02-27 09:31:57 +01:00
Madelyn Olson
075a3b8893 Updated acl setuser to be all or nothing 2019-02-26 02:04:29 +00:00
antirez
36d1588215 ACL: authCommand() refactored into ACLAuthenticateUser(). 2019-02-25 16:39:44 +01:00
antirez
87594a7470 ACL: move AUTH implementation in acl.c. 2019-02-25 16:33:38 +01:00
antirez
07473feaeb ACL: fix ACLSaveToFile() return value. 2019-02-22 12:45:13 +01:00
antirez
2bea3929d0 ACL: less error prone error handling in ACLSaveToFile(). 2019-02-22 12:43:08 +01:00
Salvatore Sanfilippo
21b8560e95
Merge pull request #5858 from madolson/dev-unstable-acl-deluser
Making deleting users better defined and update documentation
2019-02-22 10:27:37 +01:00
Madelyn Olson
fdc4003d23 Making deleting users better defined and update documentation 2019-02-21 21:34:14 +00:00
antirez
291e6bccf3 ACL: remove leak in ACLLoadFromFile(). 2019-02-21 17:03:06 +01:00
antirez
91aecf0138 ACL: implement ACL SAVE. 2019-02-21 17:01:08 +01:00
antirez
484af7aa7a ACL: ACLSaveToFile() implemented. 2019-02-21 16:50:28 +01:00
antirez
e4f3a2eecd ACL: add LOAD subcommand to ACL HELP. 2019-02-21 16:31:33 +01:00
zhaozhao.zz
14507457a0 ACL: show categories in COMMAND reply
Adding another new filed categories at the end of
command reply, it's easy to read and distinguish
flags and categories, also compatible with old format.
2019-02-14 00:13:01 +08:00
zhaozhao.zz
a65094dae8 ACL: fix cat type format warning 2019-02-13 11:47:10 +08:00
antirez
b9c97c0b2e ACL: CAT subcommand implemented. 2019-02-12 17:02:45 +01:00
antirez
f0c7cfa459 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
df346bca39 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
2ce96c0fa7 ACL: kill the old users clients after load aclfile 2019-02-11 16:26:00 +01:00
antirez
3df1eb85ca ACL: add command fingerprint for CAT subcommand. 2019-02-08 12:40:42 +01:00
antirez
d453936b52 ACL: add arity check in ACL command where missing. 2019-02-08 12:38:41 +01:00
antirez
d4890c20c1 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
80f987726d ACL: load ACL file at startup. Prevent silly configurations. 2019-02-07 17:20:03 +01:00
antirez
db30727547 ACL: ACLLoadFromFile(): several errors fixed to make it work. 2019-02-07 17:07:51 +01:00
antirez
d26c9b5307 ACL: ACLLoadFromFile(), restore DefaultUser global. 2019-02-07 17:00:35 +01:00
antirez
6a7545e4d4 ACL: fix fgets wrong buffer size. 2019-02-07 16:53:41 +01:00
antirez
cbed35efd3 ACL: add assertion and fix comment typo. 2019-02-07 16:47:14 +01:00
antirez
7a86ba22e0 ACL: fix a few ACLLoadFromFile() errors and finish ACLFreeUsersSet(). 2019-02-07 16:20:49 +01:00
antirez
1790be1496 ACL: WIP: preserve the old config on loading errors. 2019-02-07 12:57:21 +01:00
antirez
0f0240b526 ACL: implement LOAD subcommand plus some minor rafactoring. 2019-02-07 12:20:30 +01:00
antirez
72e8a080c2 ACL: fix and complete ACLLoadFromFile() loading step. 2019-02-07 12:04:25 +01:00
antirez
bbdf02338d ACL: now ACLLoadFromFile() validates against fake user. 2019-02-06 16:44:55 +01:00
antirez
0d3fb9f7f1 ACL: refactoring creation of unlinked users. 2019-02-06 16:19:17 +01:00
antirez
e1e0f993d8 ACL: initial design for ACLLoadFromFile() function. 2019-02-06 12:39:11 +01:00
antirez
416c640156 ACL: change behavior of redefined user. Last line counts. 2019-02-05 10:52:05 +01:00
antirez
2262dd184d ACL: fix user/rule inverted error message. 2019-02-04 16:58:35 +01:00
antirez
500b3e128f ACL: implement ACLLoadConfiguredUsers(). 2019-02-04 16:35:15 +01:00
antirez
b166c41edd ACL: make ACLAppendUserForLoading() able to report bad argument. 2019-02-04 13:00:58 +01:00
antirez
21e84cdae2 ACL: initial appending of users in user loading list. 2019-02-04 12:55:48 +01:00
antirez
8f16e1ea91 ACL: implement ACLAppendUserForLoading(). 2019-02-01 13:02:59 +01:00
antirez
b8323d98e9 ACL: skeleton and first ideas for postponed user loading. 2019-02-01 12:20:09 +01:00
antirez
ec1aee031c ACL: implement DELUSER. 2019-01-31 18:33:14 +01:00
antirez
74b7afdf71 ACL: check arity of LIST / USERS subcommand. 2019-01-31 18:32:49 +01:00
antirez
bc9b118e05 ACL: don't emit useless flags in ACLDescribeUser(). 2019-01-31 17:04:42 +01:00
antirez
0f1b06aa40 ACL: implement LIST and USERS subcommands. 2019-01-31 17:01:32 +01:00
antirez
c7cd10dfe9 ACL: flags refactoring, function to describe user. 2019-01-31 16:49:22 +01:00
antirez
479f7f7af4 ACL: add function to return ACLSetUser() string errors. 2019-01-30 16:02:25 +01:00
antirez
0960259835 ACL: don't allow patterns after the * pattern. 2019-01-30 15:59:45 +01:00
antirez
77471dfe86 ACL: implement keys field in ACL GETUSER. 2019-01-30 15:52:36 +01:00
antirez
9db2c84984 ACL: free memory leak when freeing subcommands array. 2019-01-30 11:50:30 +01:00
antirez
36a0168cfd 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
9c2e64db9c ACL: remove leak in ACLSetUser(). 2019-01-30 08:20:31 +01:00
antirez
efce73a001 ACL: ACLDescribeUserCommandRules(): emit subcommands. 2019-01-30 08:17:33 +01:00
antirez
9ae8e3fefa ACL: clear the subcommands array when setting category bits. 2019-01-30 08:09:05 +01:00
antirez
feba39d318 ACL: finish/fix ACLDescribeUserCommandRules() first version. 2019-01-29 18:54:21 +01:00
antirez
4db92e5928 ACL: ACLDescribeUserCommandRules(): add final commands. 2019-01-29 18:41:11 +01:00
antirez
11f64c6886 ACL: initial design for ACLDescribeUserCommandRules() and helpers. 2019-01-29 17:25:05 +01:00
antirez
acd168a70b ACL: refactoring and fix of adding subcommands to users. 2019-01-28 18:40:54 +01:00
antirez
7fb9e2b4ce 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
097d57f56e ACL: fix crash when checking for subcommands. 2019-01-28 18:15:59 +01:00
antirez
4b9b128c49 ACL: remove leak when removing passwords/patterns. 2019-01-28 12:11:11 +01:00
antirez
af72a31490 ACL: fix command bit check. 2019-01-26 12:51:43 +01:00
antirez
b7750a936f 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
eb840f9bc5 ACL: fix command ID assignment off by one error. 2019-01-25 13:07:20 +01:00
antirez
53ba09e08a ACL: remove useless NULL check. 2019-01-25 13:00:49 +01:00
antirez
d5fe17dc11 Merge branch 'unstable' of github.com:/antirez/redis into unstable 2019-01-25 13:00:30 +01:00
zhaozhao.zz
0de83bcc62 ACL: fix memory leak when key patterns no match 2019-01-25 19:35:18 +08:00
zhaozhao.zz
8fc0079366 ACL: check patterns instead of passwords in ACLCheckCommandPerm 2019-01-25 19:06:18 +08:00
antirez
510327df0b Merge branch 'unstable' of github.com:/antirez/redis into unstable 2019-01-25 11:27:34 +01:00
Salvatore Sanfilippo
e545b30f97
Merge pull request #5801 from soloestoy/fix-getuser-null-pointer
ACL: fix null pointer in getuser
2019-01-25 11:27:21 +01:00
antirez
7b4f3cc33a ACL: + and - opcode for categories implemented. 2019-01-24 18:15:46 +01:00
antirez
e8bf9b03ed ACL: ACLSetUserCommandBitsForCategory() low level API. 2019-01-24 18:11:09 +01:00
antirez
f99e0f59ef ACL: populate category flags from command table. 2019-01-23 16:59:09 +01:00
zhaozhao.zz
496497f81a ACL: fix null pointer in getuser 2019-01-23 23:57:18 +08:00
antirez
91ec53ed13 ACL: define category names and flags. 2019-01-23 16:47:29 +01:00
antirez
c5e717c637 ACL: command categories added to the command table. 2019-01-23 12:15:10 +01:00
antirez
effb84be17 ACL: specify better the +@all semantics in comments. 2019-01-23 11:05:54 +01:00
antirez
b270322ff9 ACL: ACLUserCanExecuteFutureCommands() function added. 2019-01-23 08:14:56 +01:00
antirez
70e541b7bc ACL: better define name, and the idea of reserved ID. 2019-01-23 08:10:57 +01:00
antirez
561661b145 ACL: setuser nocommands / -@all implemented. 2019-01-22 17:57:20 +01:00
antirez
8dfeb4fba1 ACL: setuser reset implemented. 2019-01-22 17:57:20 +01:00
antirez
9e5c38282b ACL: setuser resetkeys implemented. 2019-01-22 17:57:20 +01:00
antirez
53321c3c2c ACL: subcommand matching. 2019-01-22 17:57:20 +01:00
antirez
4078755ddb ACL: setting single commands ACLs implementation. 2019-01-22 17:57:20 +01:00
antirez
10f121295c ACL: GetUserCommandBit() is a much better name for the function. 2019-01-22 17:57:20 +01:00
antirez
48eeec5fb4 ACL: user commands bitmap check refactoring for new features. 2019-01-22 17:57:20 +01:00
antirez
dbdc68a658 ACL: handle command IDs in case insensitive way. 2019-01-22 17:57:20 +01:00
zhaozhao.zz
ab1992c9c6 ACL: fix compile warnings 2019-01-21 14:53:46 +08:00
antirez
c8391388c2 ACL: remove server.requirepass + some refactoring. 2019-01-18 11:49:30 +01:00
antirez
ac6e49de48 ACL: implement resetpass directive and adjust test. 2019-01-18 11:26:32 +01:00
antirez
0526d1538b ACL: partial implementation of ACL GETUSER. 2019-01-17 18:19:04 +01:00
antirez
4a3419acfc ACL: fix and improve ACL key checking. 2019-01-16 18:31:05 +01:00
antirez
dbae371090 ACL: create the user pattern list ASAP. 2019-01-16 13:50:00 +01:00
antirez
f78b3ede27 ACL: key matching implemented. 2019-01-16 13:39:04 +01:00
antirez
0db42d4ba8 ACL: implement the key match opcode in ACLSetUser(). 2019-01-16 13:29:04 +01:00
antirez
c79b01f4ba ACL: the AUTH command can be always executed. 2019-01-15 18:26:44 +01:00
antirez
cca64672f4 ACL: AUTH uses users. ACL WHOAMI implemented. 2019-01-15 18:16:20 +01:00
antirez
b39409bcf8 ACL: nopass user setting.
This is needed in order to model the current behavior of authenticating
the connection directly when no password is set. Now with ACLs this will
be obtained by setting the default user as "nopass" user. Moreover this
flag can be used in order to create other users that do not require any
password but will work with "AUTH username <any-password>".
2019-01-15 13:16:31 +01:00
antirez
4f7ff85b88 ACL: ability to set/remove user passwords. 2019-01-15 12:58:54 +01:00
antirez
7aea02fa87 ACL: initial implementation of the ACL command. 2019-01-15 09:36:12 +01:00