Skip to content

Commit ba707cd

Browse files
committed
fix: 修复并发下可能NPE问题
1 parent 30deee7 commit ba707cd

File tree

1 file changed

+8
-4
lines changed
  • hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/simple

1 file changed

+8
-4
lines changed

hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/simple/SimpleAuthentication.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,8 @@ protected boolean fastPath() {
177177

178178
@Override
179179
public boolean hasPermission(String permissionId, Collection<String> actions) {
180-
if (fastPath()) {
180+
Map<String, Permission> permissionMapping = this.permissionMapping;
181+
if (fastPath() && permissionMapping != null) {
181182
Permission permission = permissionMapping.get(permissionId);
182183
if (permission == null) {
183184
permission = permissionMapping.get("*");
@@ -194,7 +195,8 @@ public boolean hasPermission(String permissionId, Collection<String> actions) {
194195

195196
@Override
196197
public Optional<Dimension> getDimension(String type, String id) {
197-
if (fastPath()) {
198+
Map<String, Map<String, Dimension>> dimensionMapping = this.dimensionMapping;
199+
if (fastPath() && dimensionMapping != null) {
198200
Map<String, Dimension> mapping = dimensionMapping.get(type);
199201
if (mapping == null) {
200202
return Optional.empty();
@@ -216,7 +218,8 @@ public List<Dimension> getDimensions(DimensionType type) {
216218

217219
@Override
218220
public List<Dimension> getDimensions(String type) {
219-
if (fastPath()) {
221+
Map<String, Map<String, Dimension>> dimensionMapping = this.dimensionMapping;
222+
if (fastPath() && dimensionMapping != null) {
220223
Map<String, Dimension> mapping = dimensionMapping.get(type);
221224
if (mapping == null) {
222225
return List.of();
@@ -228,7 +231,8 @@ public List<Dimension> getDimensions(String type) {
228231

229232
@Override
230233
public Optional<Permission> getPermission(String id) {
231-
if (fastPath()) {
234+
Map<String, Permission> permissionMapping = this.permissionMapping;
235+
if (fastPath() && permissionMapping != null) {
232236
return Optional.ofNullable(permissionMapping.get(id));
233237
}
234238
return Authentication.super.getPermission(id);

0 commit comments

Comments
 (0)