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); } //处理关联权限