From 5fbb80f16a70698a7611c7e4ed5036fb4fbf96f6 Mon Sep 17 00:00:00 2001 From: Luck Date: Wed, 9 Dec 2020 10:38:22 +0000 Subject: [PATCH] Ensure meta keys are always lowercase, and fix 'similar' comparison case sensitivity (#2760) --- .../common/bulkupdate/comparison/StandardComparison.java | 3 +-- .../me/lucko/luckperms/common/node/types/Inheritance.java | 8 +++----- .../java/me/lucko/luckperms/common/node/types/Meta.java | 6 ++---- 3 files changed, 6 insertions(+), 11 deletions(-) diff --git a/common/src/main/java/me/lucko/luckperms/common/bulkupdate/comparison/StandardComparison.java b/common/src/main/java/me/lucko/luckperms/common/bulkupdate/comparison/StandardComparison.java index f634caab0..3152515e1 100644 --- a/common/src/main/java/me/lucko/luckperms/common/bulkupdate/comparison/StandardComparison.java +++ b/common/src/main/java/me/lucko/luckperms/common/bulkupdate/comparison/StandardComparison.java @@ -100,14 +100,13 @@ public enum StandardComparison implements Comparison { } static Pattern compilePatternForLikeSyntax(String expression) { - expression = expression.toLowerCase(); expression = expression.replace(".", "\\."); // convert from SQL LIKE syntax to regex expression = expression.replace(WILDCARD_ONE, "."); expression = expression.replace(WILDCARD, ".*"); - return Pattern.compile(expression); + return Pattern.compile(expression, Pattern.CASE_INSENSITIVE); } } diff --git a/common/src/main/java/me/lucko/luckperms/common/node/types/Inheritance.java b/common/src/main/java/me/lucko/luckperms/common/node/types/Inheritance.java index df6aacd70..6bf1c09ce 100644 --- a/common/src/main/java/me/lucko/luckperms/common/node/types/Inheritance.java +++ b/common/src/main/java/me/lucko/luckperms/common/node/types/Inheritance.java @@ -27,12 +27,10 @@ package me.lucko.luckperms.common.node.types; import me.lucko.luckperms.common.node.AbstractNode; import me.lucko.luckperms.common.node.AbstractNodeBuilder; - import net.luckperms.api.context.ImmutableContextSet; import net.luckperms.api.model.group.Group; import net.luckperms.api.node.metadata.NodeMetadataKey; import net.luckperms.api.node.types.InheritanceNode; - import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.Nullable; @@ -44,7 +42,7 @@ public class Inheritance extends AbstractNode, Object> metadata) { super(key(groupName), value, expireAt, contexts, metadata); - this.groupName = groupName; + this.groupName = groupName.toLowerCase(); } @Override @@ -96,7 +94,7 @@ public class Inheritance extends AbstractNode implements Me private static final String NODE_MARKER = NODE_KEY + "."; public static String key(String key, String value) { - return NODE_MARKER + Delimiters.escapeCharacters(key) + AbstractNode.NODE_SEPARATOR + Delimiters.escapeCharacters(value); + return NODE_MARKER + Delimiters.escapeCharacters(key).toLowerCase() + AbstractNode.NODE_SEPARATOR + Delimiters.escapeCharacters(value); } public static Builder builder() { @@ -61,7 +59,7 @@ public class Meta extends AbstractNode implements Me public Meta(String metaKey, String metaValue, boolean value, long expireAt, ImmutableContextSet contexts, Map, Object> metadata) { super(key(metaKey, metaValue), value, expireAt, contexts, metadata); - this.metaKey = metaKey; + this.metaKey = metaKey.toLowerCase(); this.metaValue = metaValue; }