Spring HandlerInterceptor不拦截具有查询参数的URL

时间:2015-11-20 13:41:18

标签: java spring spring-mvc

我有一个HandlerInterceptor,我在spring applicationContext.xml文件中定义了如下

    <mvc:interceptor>
        <mvc:mapping path="/**/security/organizations?*" />
        <bean class="com.example.interceptor.PolicyInterceptor"/>
    </mvc:interceptor>

现在,如果我调用以下URL,则上述拦截器不会拦截请求。

http://localhost:8080/user-management/security/organizations?organizationName=AECS124

任何线索?

1 个答案:

答案 0 :(得分:1)

Spring使用org.springframework.util.AntPathMatcher类来匹配路径。根据java docs

  • ?匹配一个字符
  • *匹配零个或多个字符
  • **匹配路径中的零个或多个目录

不建议在路径匹配模式中使用查询参数。它会变得复杂。

根据您的要求,您只需使用地图

即可
<mvc:mapping path="/**/security/organizations" />

并在拦截器类中基于请求参数编写任何进一步的逻辑。