Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Execute should check for whitespace (was: ACL Management) #2689

Open
NArnott opened this issue Apr 1, 2024 · 3 comments
Open

Execute should check for whitespace (was: ACL Management) #2689

NArnott opened this issue Apr 1, 2024 · 3 comments

Comments

@NArnott
Copy link

NArnott commented Apr 1, 2024

I am trying to manage ACLs programmatically, but can't seem to figure out how to do it. Is that possible at this point? I'm aware that ACLs aren't supported yet, but I'm not sure why executing raw commands are an issue.

Something as simple as this:

database.Execute("ACL SETUSER test");

Results in this error:

StackExchange.Redis.RedisServerException: 'ERR unknown command 'ACL SETUSER TEST', with args beginning with: '

All the ACL commands seem to do this.

Longer commands like

$"ACL SETUSER {username} on >{password} +@subscribe +@psubscribe &mychannels*"

results in

System.ArgumentOutOfRangeException: 'Specified argument was out of the range of valid values. (Parameter 'Command 'ACL SETUSER  on > +@subscribe +@psubscribe &mychannels*' exceeds library limit of 31 bytes')'

If ACLs worked at all, I could get around that latter error by making multiple, shorter commands, though I'd prefer running a single command.

@mgravell
Copy link
Collaborator

mgravell commented Apr 1, 2024

Execute("ACL", "SETUSER", "test")

Or

Execute("ACL", [ "SETUSER", "test" ])

I wonder if we should detect commands with a space in and either throw a clear exception, or actively split it into pieces and issue what the user probably intended.

@NArnott
Copy link
Author

NArnott commented Apr 1, 2024

Ah, ok. I couldn't find any documentation on how the args work for the Execute method. I assumed it was similar to how SQL commands do args. Thanks for the clarification.

@NArnott NArnott closed this as completed Apr 1, 2024
@mgravell mgravell changed the title ACL Management Execute should check for whitespace (was: ACL Management) Apr 1, 2024
@mgravell
Copy link
Collaborator

mgravell commented Apr 1, 2024

Reopening as usability bug. We should detect space in the command an issue appropriate guidance in an exception

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants