Je vois cela dans mon Spring MVC de l'application web.xml
:
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
J'essaie de comprendre pourquoi il est là et si c'est vraiment nécessaire.
J'ai trouvé cette explication dans le Printemps docs mais il ne m'aide pas en comprendre le sens:
Il semble suggérer que cette composante est la "colle" entre les servlets définie en web.xml
et les éléments définis dans le Ressort applicationContext.xml
.
7.1 DelegatingFilterProxy
Lors de l'utilisation de servlet filtres, vous avez évidemment besoin de les déclarer dans votre
web.xml
, ou ils seront ignorés par le conteneur de servlet. Au Printemps de Sécurité, les classes de filtre sont également beans Spring définis dans le contexte de l'application et donc en mesure de profiter du Printemps est riche d'injection de dépendance des installations et du cycle de vie des interfaces. Le printemps de l'DelegatingFilterProxy
assure le lien entreweb.xml
et le contexte de l'application.Lors de l'utilisation de DelegatingFilterProxy, vous verrez quelque chose comme ceci dans l'
web.xml
le fichier:<filter> <filter-name>myFilter</filter-name> <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> </filter> <filter-mapping> <filter-name>myFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
Notez que le filtre est en fait un
DelegatingFilterProxy
, et non pas la classe qui va effectivement mettre en œuvre la logique du filtre. CeDelegatingFilterProxy
n'est délégué du Filtre méthodes grâce à un haricot qui est obtenu à partir du Printemps contexte de l'application. Cela permet à la fève de bénéficier du Printemps contexte d'application web support du cycle de vie et la flexibilité de configuration. Le bean doit mettre en oeuvrejavax.servlet.Filter
et il doit avoir le même nom que dans le filtre-nom de l'élément. Lire la Javadoc pour DelegatingFilterProxy pour plus d'informations
Donc, si je prends ce de ma web.xml
, ce qui va arriver? Mes servlets ne sera pas en mesure de communiquer avec le Printemps conteneur?**