J'utilise Spring Security 3.0 avec JSP. J'ai créé un RequireVerificationFilter qui redirige les utilisateurs non vérifiés vers une page "vérifier votre adresse e-mail".Spring Security 3.0: Comment spécifier les URL auxquelles un filtre personnalisé s'applique?
J'ai ajouté le filtre à la pile de filtres de sécurité du printemps à la dernière place comme ceci:
définition Bean dans mon app-config.xml:
<bean id="requireVerificationFilter" class="com.ebisent.web.RequireVerificationFilter" />
Filtre ajouté à la liste des filtres de sécurité printemps dans mon security-config.xml:
<custom-filter ref="requireVerificationFilter" after="LAST" />
Le filtre fonctionne, mais il filtre sa propre URL de redirection. En d'autres termes, le filtre redirige les utilisateurs non vérifiés vers/access/verify, mais cette URL est également interceptée par le filtre, qui tente de rediriger l'annonce à l'infini.
J'ai essayé d'utiliser la balise <filter-mapping>
pour restreindre les URL auxquelles ce nouveau filtre s'applique, mais cela ne semble pas fonctionner comme je le souhaitais. Voici l'entrée web.xml j'ai ajouté de toute façon:
<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>
J'ai lu « Ajout dans vos propres filtres » dans la sécurité du printemps documention, mais n'a pas trouvé une réponse.
Ma question est: Comment puis-je spécifier les URL auxquelles mon filtre s'applique?
MISE À JOUR:
Je suis arrivé ce travail en spécifiant l'URL pour permettre dans le filtre lui-même. Cela fonctionne bien pour moi, mais s'il y a une meilleure façon de le faire, je serais heureux de l'entendre.
Merci beaucoup! J'ai des tags d'intercept-url dans ma configuration de sécurité, mais je ne savais pas que vous pouviez spécifier des filtres. – outis
Mais [Spring Security Reference Documentation] (http://static.springsource.org/spring-security/site/docs/3.1.x/reference/springsecurity-single.html#nsa-intercept-url-parents) indique que: Attribut 'filters'" Peut uniquement prendre la valeur "none" ". – btpka3