From 0c29f53daef0319c3f926a225cbfd77a535ca055 Mon Sep 17 00:00:00 2001 From: zhouhao Date: Fri, 11 Jul 2025 10:56:17 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E4=BC=98=E5=8C=96=E6=9D=83?= =?UTF-8?q?=E9=99=90=E5=88=9D=E5=A7=8B=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- changes.sh | 9 ++++++++- .../define/ResourcesDefinition.java | 4 ++-- .../basic/aop/AopAuthorizingController.java | 12 ++++++------ .../service/PermissionSynchronization.java | 17 +++++++++-------- 4 files changed, 25 insertions(+), 17 deletions(-) diff --git a/changes.sh b/changes.sh index 6becdc857..4f504a431 100755 --- a/changes.sh +++ b/changes.sh @@ -7,4 +7,11 @@ while read file; do if [ -f "$dir/pom.xml" ]; then echo "$dir"; break; fi dir=$(dirname "$dir") done -done | sort -u | tr '\n' ',' | sed 's/,$//' \ No newline at end of file +done | sort -u | tr '\n' ',' | sed 's/,$//' + +# 如果为空,则使用默认值 '.' +if [ -z "$modules" ]; then + echo "." +else + echo "$modules" +fi \ No newline at end of file diff --git a/hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/define/ResourcesDefinition.java b/hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/define/ResourcesDefinition.java index 51a57a18a..f18e4f2af 100644 --- a/hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/define/ResourcesDefinition.java +++ b/hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/define/ResourcesDefinition.java @@ -9,14 +9,14 @@ import org.hswebframework.web.authorization.Permission; import org.hswebframework.web.authorization.annotation.Logical; import java.util.*; -import java.util.function.Function; +import java.util.concurrent.ConcurrentHashMap; import java.util.stream.Collectors; @Getter @Setter public class ResourcesDefinition { - private Set resources = new HashSet<>(); + private final Set resources = ConcurrentHashMap.newKeySet(); private Logical logical = Logical.DEFAULT; diff --git a/hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/aop/AopAuthorizingController.java b/hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/aop/AopAuthorizingController.java index de642d936..874ebc176 100644 --- a/hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/aop/AopAuthorizingController.java +++ b/hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/aop/AopAuthorizingController.java @@ -17,7 +17,7 @@ import org.springframework.aop.support.StaticMethodMatcherPointcutAdvisor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.context.ApplicationEventPublisher; -import org.springframework.core.ReactiveAdapterRegistry; +import org.springframework.core.Ordered; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -26,9 +26,6 @@ import reactor.core.publisher.Mono; import java.lang.reflect.Method; import java.util.List; -import java.util.concurrent.Callable; -import java.util.function.Consumer; -import java.util.function.Function; import java.util.function.Supplier; import java.util.stream.Collectors; @@ -38,7 +35,7 @@ import java.util.stream.Collectors; */ @Slf4j @SuppressWarnings("all") -public class AopAuthorizingController extends StaticMethodMatcherPointcutAdvisor implements CommandLineRunner, MethodInterceptor { +public class AopAuthorizingController extends StaticMethodMatcherPointcutAdvisor implements CommandLineRunner, MethodInterceptor, Ordered { private static final long serialVersionUID = 1154190623020670672L; @@ -214,5 +211,8 @@ public class AopAuthorizingController extends StaticMethodMatcherPointcutAdvisor } } - + @Override + public int getOrder() { + return Ordered.HIGHEST_PRECEDENCE; + } } diff --git a/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-default/src/main/java/org/hswebframework/web/system/authorization/defaults/service/PermissionSynchronization.java b/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-default/src/main/java/org/hswebframework/web/system/authorization/defaults/service/PermissionSynchronization.java index 150ddfa1d..6317009ea 100644 --- a/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-default/src/main/java/org/hswebframework/web/system/authorization/defaults/service/PermissionSynchronization.java +++ b/hsweb-system/hsweb-system-authorization/hsweb-system-authorization-default/src/main/java/org/hswebframework/web/system/authorization/defaults/service/PermissionSynchronization.java @@ -20,6 +20,7 @@ import reactor.core.publisher.Flux; import javax.persistence.Column; import java.util.*; +import java.util.concurrent.ConcurrentHashMap; import java.util.function.Function; import java.util.stream.Collectors; @@ -95,14 +96,14 @@ public class PermissionSynchronization implements CommandLineRunner { permissionRepository .createQuery() .fetch() - .collect(Collectors.toMap(PermissionEntity::getId, Function.identity())) - .flatMap(group -> Flux.fromIterable(definition.getResources()) - .map(d -> PermissionSynchronization.convert(group, d, entityFieldsMapping)) - .as(permissionRepository::save)) - .doOnError(err -> log.warn("sync permission error", err)) - .subscribe(l -> { - log.info("sync permission success:{}", l); - }); + .collectMap(PermissionEntity::getId, Function.identity(), ConcurrentHashMap::new) + .flatMap(group -> Flux + .fromIterable(definition.getResources()) + .map(d -> PermissionSynchronization.convert(group, d, entityFieldsMapping)) + .as(permissionRepository::save)) + .subscribe( + l -> log.info("sync permission success:{}", l), + err -> log.warn("sync permission error", err)); } }