【发布时间】:2021-04-21 00:17:14
【问题描述】:
如果一个方法有多个安全注解,它们的应用顺序是什么?
例如,它是定义注释的顺序,还是固定的,例如SecuredAnnotationSecurityMetadataSource 总是在PrePostAnnotationSecurityMetadataSource 之前使用?
换句话说,调用这些方法时的评估顺序是什么?
@Secured("ROLE_ADMIN")
@PreAuthorize("hasPermission(#target, 'read')")
void method1();
@PreAuthorize("hasPermission(#target, 'read')")
@Secured("ROLE_ADMIN")
void method2();
@PreAuthorize("hasRole('ADMIN') && hasPermission(#target, 'read')")
void method3();
@PreAuthorize("hasPermission(#target, 'read') && hasRole('ADMIN')")
void method4();
【问题讨论】:
-
投反对票的理由很好。有什么可以改进的?
标签: java spring spring-security aop spring-4