Spring MVC拦截器和表单登录

时间:2015-08-12 10:36:57

标签: java spring spring-mvc spring-security

我的应用程序基于Spring MVC和Spring Security 3.2.7,我想要为我的Web应用程序上的每个路径执行一个拦截器。 所以我在我的xml配置中输入了以下代码:

<mvc:interceptors>
        <bean class="social.picnik.api.marketplace.multitenancy.interceptor.MongoMultitenantInterceptor">
            <property name="defaultTenantId" value="default"/>
        </bean>
</mvc:interceptors>

它适用于我的所有网址但只有一个:登录。

登录由Spring Security使用登录表单执行,代码如下:

<security:form-login
                 authentication-success-handler-ref="mySuccessHandler"
                 authentication-failure-handler-ref="myFailureHandler"
                 login-processing-url="/picnik-rest/login"
                 username-parameter="username" 
                 password-parameter="password"

/>

我跳过剩下的配置,但登录本身正在运行。

问题是我的拦截器不考虑 / picnik-rest / login

有什么想法吗?

由于

1 个答案:

答案 0 :(得分:2)

Spring MVC拦截器仅在到达Spring MVC的请求上调用。整个Spring Security过滤器链在 Spring MVC之前称为。对登录处理URL的请求由Spring Security处理,永远不会到达Spring MVC。

如果你想要一个&#34;拦截器&#34;对于每个URL,您可以执行servlet过滤并将其放在Spring Security之前。