3

この @WebFilter アノテーションを使用するような動作をどのように実現できるのだろうか

@WebFilter(
    urlPatterns = "/*",
    filterName = "AuthenticationFilter",
    description = "Filter all URLs"
    ,
    initParams = {
@WebInitParam(name = "unprotectedUrls", value = "/,/login,/authentication,/notification,/sdr")})
public class AuthenticationFilter implements Filter {
...}

(これはうまく機能します。つまり、リストされたパスだけにログインする必要はありませんが、他のすべてのパスにログインする必要があります)... web.xml の <filter> 要素を使用します。

web.xml でこのフィルターを使用します。

    <filter>
        <filter-name>AuthenticationFilter</filter-name>
        <filter-class>com.foo.bar.helper.AuthenticationFilter</filter-class>
        <init-param>
        <param-name>unprotectedUrls</param-name>
        <param-value>/,/login,/authentication,/notification,/sdr</param-value>
        </init-param>
    </filter>

認識されないため、すべてのパス/URL にログインする必要はありません。フィルタリングは行われません。

私の意図は、 init-params を構成可能にして、追加の URL が含まれる場合などにコード/クラスを編集する必要がないようにすることです。

4

1 に答える 1

4

フィルタを定義しただけで、フィルタをマップしていません。次の要素には、フィルタを URL にマップfilterするための要素も必要ですfilter-mapping。これは基本的にurlPatterns@WebFilter

<filter-mapping>
    <filter-name> AuthenticationFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
于 2013-09-27T18:03:54.937 に答える