zhou-hao 5 anni fa
parent
commit
d81f08c9e0

+ 2 - 0
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<Object> scope;

+ 4 - 4
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<Annotation> methodAnnotation = AnnotatedElementUtils.findAllMergedAnnotations(method, ann);
             Set<Annotation> classAnnotation = AnnotatedElementUtils.findAllMergedAnnotations(target, ann);
 
-            if (CollectionUtils.isEmpty(methodAnnotation)) {
-                return Collections.emptyMap();
-            }
+
             List<Annotation> all = new ArrayList<>(classAnnotation);
             all.addAll(methodAnnotation);
-
+            if (CollectionUtils.isEmpty(all)) {
+                return Collections.emptyMap();
+            }
             Map<String, MappingInfo> mappingInfoMap = new HashMap<>();
             for (Annotation annotation : all) {
                 if (annotation instanceof DimensionDataAccess) {

+ 3 - 3
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<DataAccessType, DataAccessConfig> configs = new HashMap<>();
+                Set<DataAccessConfig> 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);
             }
 
             //处理关联权限