업데이트 : 스프링 2.x 주석 기반 컨트롤러는 매개 변수와 반환 값의 자유도가 높아서 프로토 타입에 대한 가정을 할 수 없기 때문에 AOP 보안에 끔찍한 것을 발견했습니다. 2.x 이전에는 을 가로 채고 첫 번째 매개 변수는 HttpServletRequest이고 반환 값은 ModelAndView입니다. 이 표준을 사용하면 모든 컨트롤러에 대해 간단한 조언을 작성할 수 있습니다. 지금 요청에 매핑 방법이 무엇이든을 등 문자열, ModelAndViews를 반환 할 수 있습니다Spring의 주석을 사용하여 aspect를 어떻게 적용 할 수 있습니까?
원래의 게시물 : 나는 봄에서 실행 AOPAlliance의의 MethodInterceptor를 구현하는 기존의 측면의 집합을 가지고있다. 인터셉트를 통해 내 webapp에 보안을 제공합니다. 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>
을 ... 기존 측면을 재사용하고 주석을 사용하여 전체 컨트롤러 또는 컨트롤러 방법에 적용 할 수있는에?