Spring Security 3.0: ¿Cómo especifico las URL a las que se aplica un filtro personalizado?
Estoy usando Spring Security 3.0 con JSP. He creado un RequireVerificationFilter que redirige a los usuarios no verificados a una página de "verificar su correo electrónico".
Agregué el filtro a la pila de filtros de seguridad de resorte en el último lugar así:
Definición de bean en mi app-config.xml:
<bean id="requireVerificationFilter" class="com.ebisent.web.RequireVerificationFilter" />
Filtro agregado a la lista de filtros de seguridad de Spring en mi security-config.xml:
<custom-filter ref="requireVerificationFilter" after="LAST" />
El filtro funciona, pero filtra su propia URL de redireccionamiento. Es decir, el filtro redirige a los usuarios no verificados a / acceder / verificar, pero esa URL también es capturada por el filtro, que intenta la redirección ad infinitum.
Traté de usar el<filter-mapping>
etiqueta para restringir las URL a las que se aplica este nuevo filtro, pero eso no parece funcionar de la manera que pensé. Aquí está la entrada web.xml que agregué de todos modos:
<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>
Leí "Agregando sus propios filtros" en la documentación de seguridad de primavera, pero no encontré una respuesta.
Mi pregunta es, ¿cómo puedo especificar a qué URL se aplica mi filtro?
ACTUALIZAR:
Lo hice funcionar especificando la URL para permitir dentro del filtro. Esto funciona bien para mí, pero si hay una forma mejor / más "elástica" de hacerlo, me encantaría escucharlo.