diff --git a/hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/simple/SimpleAuthentication.java b/hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/simple/SimpleAuthentication.java index d1450fd75..0be5ffa64 100644 --- a/hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/simple/SimpleAuthentication.java +++ b/hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/simple/SimpleAuthentication.java @@ -177,7 +177,8 @@ public class SimpleAuthentication implements Authentication { @Override public boolean hasPermission(String permissionId, Collection actions) { - if (fastPath()) { + Map permissionMapping = this.permissionMapping; + if (fastPath() && permissionMapping != null) { Permission permission = permissionMapping.get(permissionId); if (permission == null) { permission = permissionMapping.get("*"); @@ -194,7 +195,8 @@ public class SimpleAuthentication implements Authentication { @Override public Optional getDimension(String type, String id) { - if (fastPath()) { + Map> dimensionMapping = this.dimensionMapping; + if (fastPath() && dimensionMapping != null) { Map mapping = dimensionMapping.get(type); if (mapping == null) { return Optional.empty(); @@ -216,7 +218,8 @@ public class SimpleAuthentication implements Authentication { @Override public List getDimensions(String type) { - if (fastPath()) { + Map> dimensionMapping = this.dimensionMapping; + if (fastPath() && dimensionMapping != null) { Map mapping = dimensionMapping.get(type); if (mapping == null) { return List.of(); @@ -228,7 +231,8 @@ public class SimpleAuthentication implements Authentication { @Override public Optional getPermission(String id) { - if (fastPath()) { + Map permissionMapping = this.permissionMapping; + if (fastPath() && permissionMapping != null) { return Optional.ofNullable(permissionMapping.get(id)); } return Authentication.super.getPermission(id);