Обновление : я обнаружил, что основанные на аннотациях Spring 2.x контроллеры ужасны для безопасности AOP, потому что вы не можете делать предположения о прототипе метода из-за увеличенной свободы в параметрах и возвращаемых значениях , До версии 2.x вы могли перехватывать handleRequest и знать, что первым параметром был HttpServletRequest , а возвращаемое значение было ModelAndView . Этот стандарт позволял вам писать простые советы для каждого контроллера. Теперь методы, сопоставленные с запросами, могут принимать что угодно и возвращать Strings, ModelAndViews и т. Д.
Исходное сообщение : У меня есть набор существующих аспектов, которые реализуют метод MethodInterceptor AOPAlliance, работающий в Spring. Они обеспечивают безопасность моего веб-приложения, перехватывая методы * handleRequest. в контроллерах и позволяя либо выполнить, либо перенаправить на страницу входа.
С появлением новых основанных на аннотациях контроллеров в Spring больше не требуется реализовывать метод 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>
... чтобы можно было повторно использовать мои существующие аспекты и применять их ко всем контроллерам или методам контроллера с использованием аннотаций?