From d81f08c9e03452a233e919d6446e43ce374e2a68 Mon Sep 17 00:00:00 2001 From: zhou-hao Date: Wed, 27 Nov 2019 21:37:14 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dbug=E8=8B=A5=E5=B9=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../authorization/simple/DimensionDataAccessConfig.java | 2 ++ .../basic/handler/access/DimensionDataAccessHandler.java | 8 ++++---- .../DefaultReactiveAuthenticationInitializeService.java | 6 +++--- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/simple/DimensionDataAccessConfig.java b/hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/simple/DimensionDataAccessConfig.java index 18b453489..3526c489f 100644 --- a/hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/simple/DimensionDataAccessConfig.java +++ b/hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/simple/DimensionDataAccessConfig.java @@ -1,5 +1,6 @@ package org.hswebframework.web.authorization.simple; +import lombok.EqualsAndHashCode; import lombok.Getter; import lombok.Setter; import org.hswebframework.web.authorization.DimensionType; @@ -12,6 +13,7 @@ import java.util.Set; @Getter @Setter +@EqualsAndHashCode(callSuper = true) public class DimensionDataAccessConfig extends AbstractDataAccessConfig implements ScopeDataAccessConfig { private Set scope; diff --git a/hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/handler/access/DimensionDataAccessHandler.java b/hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/handler/access/DimensionDataAccessHandler.java index 355af86f2..c38414de1 100644 --- a/hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/handler/access/DimensionDataAccessHandler.java +++ b/hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/handler/access/DimensionDataAccessHandler.java @@ -344,12 +344,12 @@ public class DimensionDataAccessHandler implements DataAccessHandler { Set methodAnnotation = AnnotatedElementUtils.findAllMergedAnnotations(method, ann); Set classAnnotation = AnnotatedElementUtils.findAllMergedAnnotations(target, ann); - if (CollectionUtils.isEmpty(methodAnnotation)) { - return Collections.emptyMap(); - } + List all = new ArrayList<>(classAnnotation); all.addAll(methodAnnotation); - + if (CollectionUtils.isEmpty(all)) { + return Collections.emptyMap(); + } Map mappingInfoMap = new HashMap<>(); for (Annotation annotation : all) { if (annotation instanceof DimensionDataAccess) { diff --git a/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-default/src/main/java/org/hswebframework/web/system/authorization/defaults/service/DefaultReactiveAuthenticationInitializeService.java b/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-default/src/main/java/org/hswebframework/web/system/authorization/defaults/service/DefaultReactiveAuthenticationInitializeService.java index 01a9248db..713f4ade1 100644 --- a/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-default/src/main/java/org/hswebframework/web/system/authorization/defaults/service/DefaultReactiveAuthenticationInitializeService.java +++ b/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-default/src/main/java/org/hswebframework/web/system/authorization/defaults/service/DefaultReactiveAuthenticationInitializeService.java @@ -121,7 +121,7 @@ public class DefaultReactiveAuthenticationInitializeService SimplePermission permission = new SimplePermission(); permission.setId(permissionEntity.getId()); permission.setName(permissionEntity.getName()); - Map configs = new HashMap<>(); + Set configs = new HashSet<>(); for (AuthorizationSettingEntity permissionSetting : permissionSettings) { @@ -142,7 +142,7 @@ public class DefaultReactiveAuthenticationInitializeService return config; }) .filter(Objects::nonNull) - .forEach(access -> configs.put(access.getType(), access)); + .forEach(configs::add); } if (CollectionUtils.isNotEmpty(permissionSetting.getActions())) { permission.getActions().addAll(permissionSetting.getActions()); @@ -150,7 +150,7 @@ public class DefaultReactiveAuthenticationInitializeService } allowed.put(permissionEntity.getId(), permission); - permission.setDataAccesses(new HashSet<>(configs.values())); + permission.setDataAccesses(configs); } //处理关联权限