refactor: 优化权限解析

This commit is contained in:
zhouhao
2025-06-20 19:09:57 +08:00
parent de7a816fb2
commit 41c17c858b
3 changed files with 46 additions and 76 deletions

View File

@@ -73,6 +73,14 @@ public class AopAuthorizeDefinitionParser {
if (annotation instanceof Dimension) {
definition.putAnnotation(((Dimension) annotation));
}
if (annotation instanceof ResourceAction) {
getAnnotationByType(Resource.class)
.map(res -> definition.getResources().getResource(res.id()).orElse(null))
.filter(Objects::nonNull)
.forEach(res -> {
definition.putAnnotation(res, (ResourceAction) annotation);
});
}
}
}
@@ -89,10 +97,11 @@ public class AopAuthorizeDefinitionParser {
private <T extends Annotation> Stream<T> getAnnotationByType(Class<T> type) {
return Optional.ofNullable(methodAnnotationGroup.getOrDefault(type, classAnnotationGroup.get(type)))
.map(Collection::stream)
.orElseGet(Stream::empty)
.map(type::cast);
return Optional
.ofNullable(methodAnnotationGroup.getOrDefault(type, classAnnotationGroup.get(type)))
.stream()
.flatMap(Collection::stream)
.map(type::cast);
}
}