146 Commits

Author SHA1 Message Date
antirez
a5f0fa7f7a Fix handling of special chars in ACL LOAD.
Now it is also possible for ACL SETUSER to accept empty strings
as valid operations (doing nothing), so for instance

    ACL SETUSER myuser ""

Will have just the effect of creating a user in the default state.

This should fix #7329.
2020-06-06 11:43:29 +02:00
hujie
6bb5b6d942 fix clear USER_FLAG_ALLCOMMANDS flag in acl
in ACLSetUserCommandBit, when the command bit overflows, no operation
is performed, so no need clear the USER_FLAG_ALLCOMMANDS flag.

in ACLSetUser, when adding subcommand, we don't need to call
ACLGetCommandID ahead since subcommand may be empty.
2020-05-22 12:37:49 +02:00
Madelyn Olson
1d84b89fb6 Converge hash validation for adding and removing 2020-05-22 12:37:49 +02:00
antirez
408d4fb35d ACL: re-enable command execution of disabled users.
After all I changed idea again: enabled/disabled should have a more
clear meaning, and it only means: you can't authenticate with such user
with new connections, however old connections continue to work as
expected.
2020-04-24 10:15:04 +02:00
antirez
32c6699847 ACL GENPASS: take number of bits as argument. 2020-04-24 10:14:48 +02:00
antirez
9651156a7b ACL GENPASS: emit 256 bits instead of 128. 2020-04-24 10:14:48 +02:00
antirez
de38fa2b65 ACL: deny commands execution of disabled users. 2020-04-24 10:14:48 +02:00
antirez
9674ad9579 Don't allow empty spaces in ACL usernames.
Fixes issue #6418.
2020-04-15 18:40:11 +02:00
antirez
577b4b6908 Don't allow empty spaces in ACL key patterns.
Fixes issue #6418.
2020-04-15 18:40:11 +02:00
hwware
868ad19b96 fix spelling in acl.c 2020-04-15 16:03:16 +02:00
antirez
d7b07d3ded Fix ACL HELP table missing comma. 2020-04-08 10:56:31 +02:00
antirez
d9f9a29afa ACL: Make Redis 6 more backward compatible with requirepass.
Note that this as a side effect fixes Sentinel "requirepass" mode.
2020-03-25 15:54:34 +01:00
ShooterIT
02d1a6091b Avoid compiler warnings 2020-03-05 12:51:15 +01:00
Oran Agra
23cbfea39b add SAVE subcommand to ACL HELP and top comment 2020-02-12 14:15:56 +01:00
antirez
491949ee5b ACL LOG: make max log entries configurable. 2020-02-12 14:15:35 +01:00
antirez
c0de265bfa ACL LOG: log failed auth attempts. 2020-02-12 14:15:35 +01:00
antirez
3853c71288 ACL LOG: implement LOG RESET. 2020-02-12 14:15:35 +01:00
antirez
7b53636462 ACL LOG: group similar entries in a given time delta. 2020-02-12 14:15:35 +01:00
antirez
9f5b64c4a6 ACL LOG: actually emit entries. 2020-02-12 14:15:35 +01:00
antirez
e6eafd3e1f ACL LOG: implement ACL LOG subcommadn skeleton. 2020-02-12 14:15:35 +01:00
antirez
2d06604451 ACL LOG: data structures and initial functions. 2020-02-12 14:15:35 +01:00
hwware
86fd8f0e3f typo fix in acl.c 2020-01-10 13:16:03 +01:00
Madelyn Olson
05b7628687 Add module APIs for custom authentication 2019-12-17 06:59:59 +00:00
antirez
6118989790 ACLs: change hashed passwords opcode to also remove them.
Related to PR #6405
2019-09-30 18:28:45 +02:00
Madelyn Olson
364c8601e3 Allowed passing in of password hash and fixed config rewrite 2019-09-30 17:57:49 +02:00
antirez
fa2ed64ba1 ACL: store hashed passwords in memory.
Note that this breaks API compatibility with Redis < 6:

    CONFIG GET requirepass

Will no longer return a cleartext password as well, but the SHA256 hash
of the password set.
2019-09-12 12:54:57 +02:00
antirez
036c83d8ec ACL: SHA256 based password hashing function implemented. 2019-09-12 12:33:22 +02:00
Madelyn Olson
67a4bcac1b Fixed some spelling issues in ACL codepath including user facing error 2019-06-07 13:25:22 -07:00
antirez
1a505a3ba9 ACL: Fix memory leak in ACLResetSubcommandsForCommand().
This commit fixes bug reported at #5998. Thanks to @tomcat1102.
2019-04-08 18:08:37 +02:00
antirez
42ce3e2fd5 ACL: GENPASS subcommand. 2019-03-05 15:51:37 +01:00
antirez
2136c71a88 Make PR #5872 more compatible with Redis coding style. 2019-02-27 09:34:50 +01:00
Salvatore Sanfilippo
407c5942b8 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
b6b1d56474 Updated acl setuser to be all or nothing 2019-02-26 02:04:29 +00:00
antirez
79209f1367 ACL: authCommand() refactored into ACLAuthenticateUser(). 2019-02-25 16:39:44 +01:00
antirez
dec44d23d3 ACL: move AUTH implementation in acl.c. 2019-02-25 16:33:38 +01:00
antirez
73ae256e3f ACL: fix ACLSaveToFile() return value. 2019-02-22 12:45:13 +01:00
antirez
fde40f1050 ACL: less error prone error handling in ACLSaveToFile(). 2019-02-22 12:43:08 +01:00
Salvatore Sanfilippo
3994e59268 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
691b8871d2 Making deleting users better defined and update documentation 2019-02-21 21:34:14 +00:00
antirez
c528f436e6 ACL: remove leak in ACLLoadFromFile(). 2019-02-21 17:03:06 +01:00
antirez
c3425bc0ae ACL: implement ACL SAVE. 2019-02-21 17:01:08 +01:00
antirez
c80b647d03 ACL: ACLSaveToFile() implemented. 2019-02-21 16:50:28 +01:00
antirez
cb6f5c4d0a ACL: add LOAD subcommand to ACL HELP. 2019-02-21 16:31:33 +01:00
zhaozhao.zz
3eb2f4ca14 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
0eee72b620 ACL: fix cat type format warning 2019-02-13 11:47:10 +08:00
antirez
d78a6fdcbd ACL: CAT subcommand implemented. 2019-02-12 17:02:45 +01:00
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