【问题标题】:Force a "WebFilter" to be executed first强制首先执行“WebFilter”
【发布时间】:2012-06-06 17:37:58
【问题描述】:

在我的web.xml 中考虑以下过滤器映射

<filter-mapping>
    <filter-name>rememberMeCookieFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
    <filter-name>mustBeSignedInFilter</filter-name>
    <url-pattern>/private/*</url-pattern>
</filter-mapping>

据我从我所做的测试中了解到,如果我转到/private/account.jsp,mustBeSignedInFilter 将始终首先执行(from what I could read, it's because the path is more specific)。我需要先执行 rememberMeCookieFilter。

我该怎么做?

【问题讨论】:

    标签: java jakarta-ee servlet-filters


    【解决方案1】:

    您将过滤器映射与 servlet 映射混淆了。与 URL 匹配的所有过滤器都按照在 web.xml 中指定的过滤器映射顺序执行。所以交换过滤器映射,它会按预期工作。

    <filter-mapping>
        <filter-name>mustBeSignedInFilter</filter-name>
        <url-pattern>/private/*</url-pattern>
    </filter-mapping>
    <filter-mapping>
        <filter-name>rememberMeCookieFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-02
    • 2021-01-28
    • 2013-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多