2009-07-27 1 views
1

어떤 이유로 든 my vote() 메서드에서 예상 한 authoritieObject가 FilterInvocation의 인스턴스이고 MethodInvocation이 필요했습니다. 왜 이런 일이 일어나는지 알 수 없습니다.스프링 보안 : FilterInvocation 대신 MethodInvocation을 사용하는 방법

<filter> 
    <filter-name>springSecurityFilterChain</filter-name> 
    <filter-class> 
     org.springframework.web.filter.DelegatingFilterProxy 
    </filter-class> 
</filter> 
<filter-mapping> 
    <filter-name>springSecurityFilterChain</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 

내 ApplicationContext를 :

<b:bean id="_methodDefinitionSourceAdvisor" class="org.springframework.security.intercept.method.aopalliance.MethodDefinitionSourceAdvisor"> 
    <b:constructor-arg value="_methodSecurityInterceptor" /> 
    <b:constructor-arg ref="_delegatingMethodDefinitionSource" /> 
</b:bean> 

의 MethodSecurityInterceptor는 다음과 같이 정의된다 :이 같은

<b:bean id="_methodSecurityInterceptor" class="org.springframework.security.intercept.method.aopalliance.MethodSecurityInterceptor"> 
... 

    </b:bean> 

및 delegatingMethodDefinitionSource을 :

내 web.xml 파일은 다음과 같다

<b:bean id="_delegatingMethodDefinitionSource" class="org.springframework.security.intercept.method.DelegatingMethodDefinitionSource"> 
... 

    </bean> 

단서가 있습니까? 나는 정말로 작은 도움을 사용할 수있다!

+0

코드를 추가 할 수 있습니까? – Gandalf

+0

사실, 방금 일어난 일을 발견했습니다. 누군가 xml 구성 파일 중 하나에서 aspectj : autoproxy 태그를 제거했습니다. 그렇기 때문에 Spring은 빈을 올바르게 인스턴스화하지 못하여 인터셉터를 기본 컨테이너 인 FilterInterceptor로 남겨 두었습니다. 어쨌든 도움을 주셔서 고마워. 나는 대답을 최대한 빨리 게시 할 것이다. –

답변

-1

구성 xml에 누락 된 <aspectj:autoproxy/> 태그를 추가해야했습니다. 그러면 보안 인터셉터가 자동으로 빈을 채 웁니다.