Używam Spring Security 3.0 ze stronami JSP. Utworzyłem RequireVerificationFilter, który przekierowuje niezweryfikowanych użytkowników na stronę "zweryfikuj swoją pocztę".Spring Security 3.0: Jak określić adresy URL, do których ma zastosowanie filtr niestandardowy?
dodałem filtr ze stosu wiosna filtra bezpieczeństwa na ostatnim miejscu w taki sposób:
Bean definicja w moim app-config.xml:
<bean id="requireVerificationFilter" class="com.ebisent.web.RequireVerificationFilter" />
Filter dodany do wiosny listę filtrów zabezpieczeń w moim security-config.xml:
<custom-filter ref="requireVerificationFilter" after="LAST" />
Filtr działa, ale filtruje własny przekierowany adres URL. Oznacza to, że filtr przekierowuje niezweryfikowanych użytkowników do/access/verify, ale ten URL jest również przechwytywany przez filtr, który próbuje przekierować reklamę w nieskończoność.
Próbowałem użyć znacznika <filter-mapping>
, aby ograniczyć adresy URL, do których odnosi się ten nowy filtr, ale to nie działa tak, jak myślałem. Oto wpis web.xml dodałam i tak:
<filter>
<filter-name>requireVerificationFilter</filter-name>
<filter-class>com.ebisent.web.RequireVerificationFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>requireVerificationFilter</filter-name>
<url-pattern>/account/*</url-pattern>
</filter-mapping>
Czytam poprzez „Dodawanie we własnych filtrów” w zabezpieczenia dokumentację, sprężyny, ale nie znalazł odpowiedzi.
Moje pytanie brzmi: Jak mogę określić, które adresy URL, mój filtr dotyczy?
UPDATE:
dostałem tej pracy przez podanie adresu URL, aby umożliwić w obrębie samego filtra. To działa dobrze dla mnie, ale jeśli istnieje lepszy/bardziej "sprężysty" sposób, aby to zrobić, byłbym zadowolony z usłyszenia go.
Dziękujemy! W mojej konfiguracji zabezpieczeń mam tagi przechwytywania-adresu URL, ale nie wiedziałem, że możesz tam określić filtry. – outis
Ale [Wiosna Bezpieczeństwo Dokumentacja Reference] (http://static.springsource.org/spring-security/site/docs/3.1.x/reference/springsecurity-single.html#nsa-intercept-url-parents) mówi, że: "filters" atrybut "Może tylko przyjąć wartość" none "". – btpka3