Commit c7d23f3e authored by antirez's avatar antirez
Browse files

Fix for issue #132. Now AUTH raises an error if no server password is configured.

parent 09cefcfb
...@@ -1183,7 +1183,9 @@ int prepareForShutdown() { ...@@ -1183,7 +1183,9 @@ int prepareForShutdown() {
/*================================== Commands =============================== */ /*================================== Commands =============================== */
void authCommand(redisClient *c) { void authCommand(redisClient *c) {
if (!server.requirepass || !strcmp(c->argv[1]->ptr, server.requirepass)) { if (!server.requirepass) {
addReplyError(c,"Client sent AUTH, but no password is set");
} else if (!strcmp(c->argv[1]->ptr, server.requirepass)) {
c->authenticated = 1; c->authenticated = 1;
addReply(c,shared.ok); addReply(c,shared.ok);
} else { } else {
......
start_server {tags {"auth"}} {
test {AUTH fails if there is no password configured server side} {
catch {r auth foo} err
set _ $err
} {ERR*no password*}
}
start_server {tags {"auth"} overrides {requirepass foobar}} { start_server {tags {"auth"} overrides {requirepass foobar}} {
test {AUTH fails when a wrong password is given} { test {AUTH fails when a wrong password is given} {
catch {r auth wrong!} err catch {r auth wrong!} err
format $err set _ $err
} {ERR*invalid password} } {ERR*invalid password}
test {Arbitrary command gives an error when AUTH is required} { test {Arbitrary command gives an error when AUTH is required} {
catch {r set foo bar} err catch {r set foo bar} err
format $err set _ $err
} {ERR*operation not permitted} } {ERR*operation not permitted}
test {AUTH succeeds when the right password is given} { test {AUTH succeeds when the right password is given} {
r auth foobar r auth foobar
} {OK} } {OK}
test {Once AUTH succeeded we can actually send commands to the server} {
r set foo 100
r incr foo
} {101}
} }
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment