Spring Security:如何使用MethodInvocation而不是FilterInvocation

时间:2009-07-27 21:47:12

标签: spring-security

由于某种原因,我在vote()方法中期待的authoritieObject是FilterInvocation的一个实例,我需要一个MethodInvocation。无法弄清楚为什么会这样。

我的web.xml如下:

    <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,如下所示:

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

    </bean>

有任何线索吗?我真的可以用一些帮助!

1 个答案:

答案 0 :(得分:-1)

我必须在配置xmls上放置一个丢失的<aspectj:autoproxy/>标记。这使得bean通过安全拦截器自动执行。