IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Spring Java Discussion :

Injection d'un bean dans un filter


Sujet :

Spring Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2010
    Messages : 9
    Par défaut 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

    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.

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 963
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 963
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
    ?

  3. #3
    Membre habitué
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2010
    Messages : 9
    Par défaut
    La classe DelegatingFilterProxy ne permet pas d'appliquer une chaine de filtres spécifique par URL (ou pattern d'URLs), ce qu'autorise la classe FilterChainProxy.

    J'ai fait le test avec DelegatingFilterProxy et ça fonctionne correctement.

    Mais merci pour le conseil !

  4. #4
    Membre habitué
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2010
    Messages : 9
    Par défaut
    Mais mon problème persiste avec la classe FilterChainProxy.
    Pourtant j'ai vu un exemple similaire fonctionner sur un ancien projet, à la seule différence qu'il utilisait la version 2.5 de Spring :
    Un bean était injecté en param du filter avec le param-name 'targetBean' et le filter exploitait correctement ce bean.

Discussions similaires

  1. Erreur d'injection de l'EJB dans le Managed Bean
    Par bruneltouopi dans le forum Java EE
    Réponses: 18
    Dernier message: 04/01/2014, 16h44
  2. [Framework] Injection bean dans une POJO
    Par anisj1m dans le forum Spring
    Réponses: 4
    Dernier message: 27/05/2011, 14h59
  3. [Framework] Injection de Service spring dans un managed bean JSF
    Par _skip dans le forum Spring
    Réponses: 10
    Dernier message: 12/03/2009, 09h28
  4. [Spring + Struts]Injecter un bean dans un plugin Struts
    Par Saverok dans le forum Spring Web
    Réponses: 1
    Dernier message: 18/12/2008, 15h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo