Skip to content

Commit 7e28e62

Browse files
authored
feat: fix potential null pointer issue in loadPolicyLine() (#439)
1 parent 6fc0c4e commit 7e28e62

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

src/main/java/org/casbin/jcasbin/persist/Helper.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
import java.util.Arrays;
2121
import java.util.List;
22+
import java.util.Map;
2223

2324
import static org.casbin.jcasbin.util.Util.splitCommaDelimited;
2425

@@ -40,7 +41,14 @@ public static void loadPolicyLine(String line, Model model) {
4041

4142
String key = tokens[0];
4243
String sec = key.substring(0, 1);
43-
Assertion ast = model.model.get(sec).get(key);
44+
Map<String, Assertion> astMap = model.model.get(sec);
45+
if(astMap == null) {
46+
return;
47+
}
48+
Assertion ast = astMap.get(key);
49+
if(ast == null) {
50+
return;
51+
}
4452
List<String> policy = Arrays.asList(Arrays.copyOfRange(tokens, 1, tokens.length));
4553
ast.policy.add(policy);
4654
ast.policyIndex.put(policy.toString(), ast.policy.size() - 1);

src/main/java/org/casbin/jcasbin/persist/file_adapter/FileAdapter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ public void removePolicy(String sec, String ptype, List<String> rule) {
154154
}
155155
try {
156156
List<String> lines = IOUtils.readLines(new FileInputStream(filePath), Charset.forName("UTF-8"));
157-
lines.remove(ruleText);
157+
lines.removeIf(line -> line.replaceAll("\\s", "").equals(ruleText.replaceAll("\\s", "")));
158158
savePolicyFile(String.join("\n", lines));
159159
} catch (IOException e) {
160160
e.printStackTrace();

0 commit comments

Comments
 (0)