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