我有一个带有一些共享@RequestMapping
方法的抽象类(父类),并且有一些@Controller
实现它的类(子类)。
我在类级别注释了子类@Secured
,但父类方法不受此保护。(即AOP拦截器只考虑子类上的方法,不考虑父类)。
不幸的是,每个子类都需要由不同的角色保护,因此不可能用一个共同的@Secured
限制来注释父类。可以覆盖父类中的所有方法,以便它们受到保护,但我想避免这种丑陋的解决方法。
因此我想知道有什么我可以覆盖的(例如拦截器、建议或元数据提供者,以便类层次结构中的任何方法都可以观察@Secured
目标类上的注释)?
附加信息:
似乎注释解析是在
org.springframework.security.access.method.AbstractFallbackMethodSecurityMetadataSource.getAttributes(Method, Class<?>)
中实现的,实际上它只查看了方法的声明类(在我的例子中是父类)。但是,我对代理编程不太熟悉,所以欢迎任何关于如何安全地实现我想要的更改的建议。