Injection d'un bean dans un filter
Bonjour à tous,
Je débute avec Spring Secuity (version 3.1) et je souhaite sécuriser une application web sous tomcat.
Pour cela, j'ai créé un filtre de type FilterChainProxy dans mon config-security.xml.
Code:
1 2 3 4 5 6 7 8 9 10 11
|
<beans:bean id="springSecurityFilterChainProxy" class="org.springframework.security.web.FilterChainProxy">
<beans:constructor-arg>
<beans:list>
<filter-chain pattern="/log/**"
filters="httpSessionContextIntegrationFilter" />
<filter-chain pattern="/**"
filters="httpSessionContextIntegrationFilter,exceptionTranslationFilter,filterSecurityInterceptor" />
</beans:list>
</beans:constructor-arg>
</beans:bean> |
Mon fichier définit également les trois filtres httpSessionContextIntegrationFilter, exceptionTranslationFilter et filterSecurityInterceptor
Et dans mon web.xml, j'ai ajouté mon filtre de la mnière suivante.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
<filter>
<filter-name>Spring Security Filter Chain Proxy</filter-name>
<filter-class>org.springframework.security.web.FilterChainProxy</filter-class>
<init-param>
<param-name>targetBean</param-name>
<param-value>springSecurityFilterChainProxy</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Spring Security Filter Chain Proxy</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping> |
Mon bean springSecurityFilterChainProxy est correctement créé au lancement de mon serveur. Pourtant lors d'une requête http, l'attribut chainList est vide quand je passe dans la méthode dofilter() de la classe. :cry:
Je pense que mon bean n'est pas correctement injecté dans mon filter. J'ai tenté différents <param-name> comme 'targetBean', 'targetBeanName', 'className', mais rien ne fonctionne.
Merci d'avance.