mirror of
https://github.com/hs-web/hsweb-framework.git
synced 2026-06-01 18:35:37 +08:00
优化权限
This commit is contained in:
@@ -58,7 +58,7 @@ public class DefaultBasicAuthorizeDefinition implements AopAuthorizeDefinition {
|
||||
definition.setTargetClass(targetClass);
|
||||
definition.setTargetMethod(method);
|
||||
|
||||
Set<Annotation> annotations = AnnotatedElementUtils.findAllMergedAnnotations(method, types);
|
||||
Set<Annotation> methodAnnotation = AnnotatedElementUtils.findAllMergedAnnotations(method, types);
|
||||
|
||||
Set<Annotation> classAnnotation = AnnotatedElementUtils.findAllMergedAnnotations(targetClass, types);
|
||||
|
||||
@@ -66,7 +66,7 @@ public class DefaultBasicAuthorizeDefinition implements AopAuthorizeDefinition {
|
||||
.stream()
|
||||
.collect(Collectors.toMap(Annotation::annotationType, Function.identity()));
|
||||
|
||||
Map<Class, Annotation> mapping = annotations
|
||||
Map<Class, Annotation> mapping = methodAnnotation
|
||||
.stream()
|
||||
.collect(Collectors.toMap(Annotation::annotationType, Function.identity()));
|
||||
|
||||
@@ -79,7 +79,7 @@ public class DefaultBasicAuthorizeDefinition implements AopAuthorizeDefinition {
|
||||
}
|
||||
}
|
||||
|
||||
for (Annotation annotation : annotations) {
|
||||
for (Annotation annotation : methodAnnotation) {
|
||||
if (annotation instanceof Authorize) {
|
||||
definition.putAnnotation(((Authorize) annotation));
|
||||
}
|
||||
@@ -91,7 +91,7 @@ public class DefaultBasicAuthorizeDefinition implements AopAuthorizeDefinition {
|
||||
}
|
||||
}
|
||||
|
||||
for (Annotation annotation : annotations) {
|
||||
for (Annotation annotation : methodAnnotation) {
|
||||
|
||||
if (annotation instanceof ResourceAction) {
|
||||
Optional.ofNullable(mapping.getOrDefault(Resource.class, classAnnotationMap.get(Resource.class)))
|
||||
@@ -107,19 +107,23 @@ public class DefaultBasicAuthorizeDefinition implements AopAuthorizeDefinition {
|
||||
.ifPresent(dat -> definition.putAnnotation(action, dat));
|
||||
});
|
||||
}
|
||||
Optional<ResourceActionDefinition> actionDefinition = Optional.ofNullable(mapping.getOrDefault(Resource.class, classAnnotationMap.get(Resource.class)))
|
||||
.map(Resource.class::cast)
|
||||
.flatMap(res -> definition.getResources().getResource(res.id()))
|
||||
.flatMap(res -> Optional.ofNullable(mapping.get(ResourceAction.class))
|
||||
.map(ResourceAction.class::cast)
|
||||
.flatMap(ra -> res.getAction(ra.id())));
|
||||
|
||||
if (annotation instanceof DataAccessType) {
|
||||
actionDefinition.ifPresent(ra -> definition.putAnnotation(ra, (DataAccessType) annotation));
|
||||
}
|
||||
|
||||
if (annotation instanceof DataAccess) {
|
||||
Optional.ofNullable(mapping.getOrDefault(Resource.class, classAnnotationMap.get(Resource.class)))
|
||||
.map(Resource.class::cast)
|
||||
.flatMap(res -> definition.getResources().getResource(res.id()))
|
||||
.flatMap(res -> Optional.ofNullable(mapping.get(ResourceAction.class))
|
||||
.map(ResourceAction.class::cast)
|
||||
.flatMap(ra -> res.getAction(ra.id())))
|
||||
.ifPresent(ra -> {
|
||||
actionDefinition.ifPresent(ra -> {
|
||||
definition.putAnnotation(ra, (DataAccess) annotation);
|
||||
Optional.ofNullable(mapping.get(DataAccessType.class))
|
||||
.map(DataAccessType.class::cast)
|
||||
.ifPresent(dat -> definition.putAnnotation(ra, dat));
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user