Обновление: Я нашел, что контроллеры Spring 2.x, основанные на аннотациях, ужасны для безопасности AOP, потому что вы не можете делать предположения о прототипе метода из-за повышенной свободы в параметрах и возвращаемых значениях. До 2.x вы можете перехватить handleRequest и знать, что первый параметр был HttpServletRequest, а возвращаемое значение было ModelAndView. Этот стандарт позволил вам написать простые советы для каждого контроллера. Теперь методы отображенные на запросы могут взять что-нибудь и возвращать строки, ModelAndViews и т.д.Как применить аспект с помощью аннотаций весной?
Оригинал Сообщение: У меня есть набор существующих аспектов, которые реализуют MethodInterceptor AOPAlliance бежит весной. Они обеспечивают безопасность моего webapp путем перехвата. ручкаRequest. в контроллерах и разрешает выполнение или пересылку на страницу входа.
С помощью новых контроллеров на основе аннотаций весной метод «handleRequest» больше не нуждается в реализации; методы контроллера можно назвать тем, что я хочу. Это нарушает мою существующую модель безопасности. Итак, как я получаю от этого:
<bean class="com.xxx.aspects.security.LoginAdvice" name="loginAdvice">
<property name="loginPath">
<value>/login.htm</value>
</property>
<property name="authenticationService" ref="authenticationService" />
</bean>
<bean name="loginAdvisor" class="org.springframework.aop.support.DefaultPointcutAdvisor">
<property name="advice" ref="loginAdvice" />
<property name="pointcut">
<bean class="org.springframework.aop.support.JdkRegexpMethodPointcut">
<property name="pattern">
<value>.*handleRequest.*</value>
</property>
</bean>
</property>
</bean>
<bean id="someProtectedController" class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="target">
<ref local="someProtectedControllerTarget" />
</property>
<property name="interceptorNames">
<list>
<value>loginAdvisor</value>
<value>adminAdvisor</value>
</list>
</property>
</bean>
... чтобы быть в состоянии повторно использовать свои существующие аспекты и применять их целые контроллеры или методы контроллера с помощью аннотаций?