Estoy usando Spring Security 3.0 con JSP. Creé un RequireVerificationFilter que redirige a los usuarios no verificados a una página de "verificar tu correo electrónico".Spring Security 3.0: ¿Cómo especifico las URL a las que se aplica un filtro personalizado?
he añadido el filtro a la pila de filtros de seguridad de primavera en el último lugar de este modo:
definición de la haba en mi aplicación-config.xml:
<bean id="requireVerificationFilter" class="com.ebisent.web.RequireVerificationFilter" />
Filtro añadió a la primavera lista de filtros de seguridad en mi seguridad-config.xml:
<custom-filter ref="requireVerificationFilter" after="LAST" />
El filtro funciona, pero se filtra su propia URL de redirección. Es decir, el filtro redirecciona a los usuarios no verificados a/access/verify, pero esa URL también es captada por el filtro, que intenta redirigir ad infinitum.
Intenté usar la etiqueta <filter-mapping>
para restringir las URL a las que se aplica este nuevo filtro, pero parece que no funciona de la manera que pensé. Aquí está la entrada web.xml he añadido 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í "Adición de sus propios filtros" en el documention seguridad de la primavera, pero no encontró una respuesta.
Mi pregunta es, ¿cómo puedo especificar a qué URL se aplica mi filtro?
ACTUALIZACIÓN:
Tengo este trabajo especificando la dirección URL para que dentro del propio filtro. Esto funciona bien para mí, pero si hay una mejor/más "elástica" forma de hacerlo, me gustaría escucharlo.
¡Gracias! Tengo etiquetas de URL de intercepción en mi configuración de seguridad, pero no sabía que podrías especificar filtros allí. – outis
Pero [Spring Security Reference Documentation] (http://static.springsource.org/spring-security/site/docs/3.1.x/reference/springsecurity-single.html#nsa-intercept-url-parents) dice que: atributo 'filters'" Solo puede tomar el valor "none" ". – btpka3