Sto utilizzando Spring Security 3.0 con JSP. Ho creato un RequireVerificationFilter che reindirizza gli utenti non verificati a una pagina "verifica la tua email".Spring Security 3.0: come si specificano gli URL ai quali si applica un filtro personalizzato?
ho aggiunto il filtro alla pila di filtri di sicurezza primavera all'ultimo posto in questo modo:
definizione Bean nella mia app-config.xml:
<bean id="requireVerificationFilter" class="com.ebisent.web.RequireVerificationFilter" />
Filtro aggiunto alla primavera lista dei filtri di sicurezza nel mio security-config.xml:
<custom-filter ref="requireVerificationFilter" after="LAST" />
Il filtro funziona, ma filtra il proprio URL di reindirizzamento. Cioè, il filtro reindirizza gli utenti non verificati a/access/verify, ma tale URL viene catturato anche dal filtro, che tenta il reindirizzamento all'infinito.
Ho provato a utilizzare il tag <filter-mapping>
per limitare gli URL a cui questo nuovo filtro si applica, ma non sembra funzionare come pensavo. Ecco la voce di web.xml ho aggiunto in ogni caso:
<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>
ho letto "Aggiungendo i propri filtri" nel documention sicurezza primavera, ma non ha trovato una risposta.
La mia domanda è, come posso specificare a quali URL viene applicato il mio filtro?
UPDATE:
Ho ottenuto questo lavoro specificando l'URL per consentire all'interno del filtro stesso. Questo funziona bene per me, ma se c'è un modo migliore/più "elastico" per farlo, sarei felice di sentirlo.
Grazie! Ho dei tag intercetta-url nella mia configurazione di sicurezza, ma non sapevo che potessi specificare i filtri lì. – outis
Ma [Spring Security Reference Documentation] (http://static.springsource.org/spring-security/site/docs/3.1.x/reference/springsecurity-single.html#nsa-intercept-url-parents) dice che: attributo 'filters'" Può solo prendere il valore "none" ". – btpka3