aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTrumeet <yuuta@yuuta.moe>2022-07-13 12:20:51 -0700
committerTrumeet <yuuta@yuuta.moe>2022-07-13 12:21:04 -0700
commit83e5d05251f918c6a4775c92e9c95096aaef8292 (patch)
tree8698e80aa0e8dfe10996b9a94146c7aaee399f06
parent8ede1787ee91bfb55a866a345a40c63210539e3e (diff)
downloadacron-83e5d05251f918c6a4775c92e9c95096aaef8292.tar
acron-83e5d05251f918c6a4775c92e9c95096aaef8292.tar.gz
acron-83e5d05251f918c6a4775c92e9c95096aaef8292.tar.bz2
acron-83e5d05251f918c6a4775c92e9c95096aaef8292.zip
Fix command leading slash not ignored during permission check
Signed-off-by: Trumeet <yuuta@yuuta.moe>
-rw-r--r--src/main/java/moe/ymc/acron/auth/PolicyChecker.java5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/main/java/moe/ymc/acron/auth/PolicyChecker.java b/src/main/java/moe/ymc/acron/auth/PolicyChecker.java
index 5dea02a..2ab7b97 100644
--- a/src/main/java/moe/ymc/acron/auth/PolicyChecker.java
+++ b/src/main/java/moe/ymc/acron/auth/PolicyChecker.java
@@ -10,9 +10,12 @@ public class PolicyChecker {
public static Pair<Action, Boolean> check(@NotNull Client client,
@NotNull String command) {
+ final String commandToMatch = command.startsWith("/") ?
+ command.substring(1) :
+ command;
for (int i = 0; i < client.rules().length; i++) {
final Rule rule = client.rules()[i];
- if (rule.cmdPattern().matcher(command).matches()) {
+ if (rule.cmdPattern().matcher(commandToMatch).matches()) {
if (rule.action() == Action.DENY) {
LOGGER.warn("The command from client {}, `{}`, was " +
"explicitly denied by rule #{} (starting from 1).",