Безопасность Spring с отображением фильтра - Фильтр не вызывается с тегами диспетчера - PullRequest
0 голосов
/ 13 июня 2018

Я использую Spring Security, а также добавляю сопоставление фильтров, как показано ниже.

Мои весенние настройки безопасности:

<http entry-point-ref="httpAuthenticationEntryPoint">
    <intercept-url pattern="/**" method="OPTIONS" access="true"/>
    <intercept-url pattern="/**" access="isAuthenticated()"/>
    <form-login 
        authentication-success-handler-ref="authSuccessHandler"
        authentication-failure-handler-ref="authFailureHandler"/>
    <logout success-handler-ref="httpLogoutSuccessHandler"/>
    <custom-filter before="FORM_LOGIN_FILTER" ref="sessionContextFilter" />
</http>

И отображение фильтра, определенное в веб-фрагменте:

<filter-mapping>
    <filter-name>customFilter</filter-name>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
</filter-mapping>

Проблема в том, что "customFilter""не вызывается в запросе на вход / выход из системы.Если я добавлю шаблон URL, как показано ниже, то он будет называться

    <url-pattern>/</url-pattern>

Любая идея, почему он не работает без шаблона URL?

PS: я не могу объединить "customFilter""с конфигурациями пружин, поскольку конфигурации пружин могут быть перезаписаны, и я не хочу, чтобы они добавляли мой пользовательский фильтр, который не связан с безопасностью.

1 Ответ

0 голосов
/ 13 июня 2018

Согласно дескриптору развертывания web.xml документация элемент <filter-mapping> должен иметь элемент <url-pattern> или <servlet-name>.Вы пропускаете и то, и другое, поэтому оно не работает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...