Skip to content

Commit 7ad6496

Browse files
authored
Revert "feat: fix the double quotes caused eval() bug (#443)"
This reverts commit 50d1967.
1 parent 50d1967 commit 7ad6496

File tree

4 files changed

+2
-43
lines changed

4 files changed

+2
-43
lines changed

src/main/java/org/casbin/jcasbin/main/CoreEnforcer.java

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -42,9 +42,6 @@
4242
import java.util.function.BiPredicate;
4343
import java.util.function.Function;
4444

45-
import static org.casbin.jcasbin.util.Util.hasEval;
46-
import static org.casbin.jcasbin.util.Util.splitCommaDelimitedList;
47-
4845
/**
4946
* CoreEnforcer defines the core functionality of an enforcer.
5047
*/
@@ -583,7 +580,6 @@ private EnforceResult enforce(String matcher, Object... rvals) {
583580
} else {
584581
expString = Util.removeComments(Util.escapeAssertion(matcher));
585582
}
586-
boolean hasEval = hasEval(expString);
587583

588584
// json process
589585
if (acceptJsonRequest) {
@@ -633,9 +629,6 @@ private EnforceResult enforce(String matcher, Object... rvals) {
633629

634630
for (int i = 0; i < policy.size(); i++) {
635631
List<String> pvals = policy.get(i);
636-
if (hasEval) {
637-
pvals = splitCommaDelimitedList(pvals);
638-
}
639632
Map<String, Object> parameters = new HashMap<>(rvals.length + pTokens.length);
640633
getPTokens(parameters, pType, pvals, pTokens);
641634
getRTokens(parameters, rType, rvals);

src/main/java/org/casbin/jcasbin/util/Util.java

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -284,21 +284,6 @@ public static String[] splitCommaDelimited(String s) {
284284
return records;
285285
}
286286

287-
/**
288-
* splits each string in the given list by commas according to CSV format
289-
* and removes any extra double quotes
290-
* @param rule the rule to be modified
291-
* @return the modified rule
292-
*/
293-
public static List<String> splitCommaDelimitedList(List<String> rule) {
294-
List<String> modifiedRule = new ArrayList<>();
295-
for (String s : rule) {
296-
String[] strings = splitCommaDelimited(s);
297-
modifiedRule.add(strings[0]);
298-
}
299-
return modifiedRule;
300-
}
301-
302287
/**
303288
* setEquals determines whether two string sets are identical.
304289
*
@@ -329,7 +314,7 @@ public static boolean setEquals(List<String> a, List<String> b) {
329314
}
330315

331316
public static boolean hasEval(String exp) {
332-
return evalReg.matcher(exp).find();
317+
return evalReg.matcher(exp).matches();
333318
}
334319

335320
public static String replaceEval(String s, String replacement) {

src/test/java/org/casbin/jcasbin/main/AbacAPIUnitTest.java

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,8 @@
1414

1515
package org.casbin.jcasbin.main;
1616

17+
import org.casbin.jcasbin.util.Util;
1718
import org.junit.Test;
18-
19-
import java.util.ArrayList;
20-
import java.util.List;
2119
import java.util.Map;
2220
import java.util.HashMap;
2321

@@ -44,15 +42,6 @@ public void testEval() {
4442
alice.setAge(60);
4543
testEnforce(e, alice, "/data2", "read", false);
4644
testEnforce(e, alice, "/data2", "write", false);
47-
48-
List<String> rule = new ArrayList<>();
49-
rule.add("\"r.sub.name == 'alice,green'\"");
50-
rule.add("data1");
51-
rule.add("read");
52-
e.addPolicy(rule);
53-
54-
TestEvalRule aliceGreen = new TestEvalRule("alice,green", 18);
55-
testEnforce(e, aliceGreen, "data1", "read", true);
5645
}
5746

5847
@Test

src/test/java/org/casbin/jcasbin/main/UtilTest.java

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
import java.io.IOException;
2828
import java.io.StringReader;
2929

30-
import static org.casbin.jcasbin.util.Util.hasEval;
3130
import static org.junit.Assert.*;
3231
import static org.mockito.ArgumentMatchers.*;
3332

@@ -85,13 +84,6 @@ public void testSplitCommaDelimited(){
8584
assertArrayEquals(new String[]{"a b", "c", "d"}, Util.splitCommaDelimited("\"a b\", c, d"));
8685
}
8786

88-
@Test
89-
public void testHasEval() {
90-
assertTrue(hasEval("eval(test)"));
91-
assertTrue(hasEval("r_act == p_act && eval(p_sub_rule) && eval(p_obj_rule)"));
92-
assertFalse(hasEval("evaltest"));
93-
}
94-
9587
@Test
9688
public void testReplaceEval() {
9789
Util.logPrint(Util.replaceEval("eval(test)", "testEval"));

0 commit comments

Comments
 (0)