Java GAE应用程序中未调用Spring侦听器

Java GAE应用程序中未调用Spring侦听器,java,spring,google-app-engine,spring-mvc,Java,Spring,Google App Engine,Spring Mvc,我正在构建一个应用程序,部署在google app engine上。我定义了一个Spring拦截器,可以在“account/anywhere”下的所有请求上调用它。我还有一个安全约束(在web.xml中定义),强制用户必须经过身份验证才能访问/account下的任何内容 我注意到,当我在尝试访问/account下的任何内容之前登录时,当我导航到/account/anywhere时,会按照设计调用拦截器 但是,当我在没有登录的情况下进入应用程序cold并尝试直接转到/account/anywher

我正在构建一个应用程序,部署在google app engine上。我定义了一个Spring拦截器,可以在“account/anywhere”下的所有请求上调用它。我还有一个安全约束(在web.xml中定义),强制用户必须经过身份验证才能访问/account下的任何内容

我注意到,当我在尝试访问/account下的任何内容之前登录时,当我导航到/account/anywhere时,会按照设计调用拦截器

但是,当我在没有登录的情况下进入应用程序cold并尝试直接转到/account/anywhere时,系统会提示我登录(正如我所期望的那样,因为web.xml中定义了安全约束),但不会调用拦截器

有人见过谷歌应用程序引擎的这种行为吗

web.xml配置:

<security-constraint>
    <display-name>Account Security Constratint</display-name>
    <web-resource-collection>
        <url-pattern>/account/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>*</role-name>
    </auth-constraint>
</security-constraint>
<security-constraint>
    <mvc:interceptor>
        <mvc:mapping path="/account/*" />
        <bean class="com.myapp.interceptors.AccountInterceptor" />
    </mvc:interceptor>

账户安全建设
/帐目/*
*
Spring拦截器配置:

<security-constraint>
    <display-name>Account Security Constratint</display-name>
    <web-resource-collection>
        <url-pattern>/account/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>*</role-name>
    </auth-constraint>
</security-constraint>
<security-constraint>
    <mvc:interceptor>
        <mvc:mapping path="/account/*" />
        <bean class="com.myapp.interceptors.AccountInterceptor" />
    </mvc:interceptor>


短期内,我决定创建一系列实用方法来完成以前在拦截器中的工作,我只是在每个控制器方法开始时调用这些方法,它可以工作,但理想情况下,我希望能够依赖拦截器。

由于安全过滤器,特别是安全过滤器,您可以及时登录

过滤器在servlet之前处理。MVC拦截器在DispatcherServlet中工作

因为对安全资源的请求在过滤阶段被阻止,所以不会调用DispatcherServlet和MVC拦截器。

对于web.xml,您使用的是容器管理的安全性,这与Spring容器拦截器不同。现在,在您仅从web服务器容器成功登录之后,请求将转到spring interceptor。

我希望在成功登录后调用interceptor,但这并没有发生。