Nije definiran nijedan grah nazvan "springSecurityFilterChain"
1. Problem
Ovaj članak raspravlja o konfiguracijskom problemu Spring Security - postupak pokretanja aplikacije koji donosi sljedeću iznimku:
TEŠKO: Iznimka koja pokreće filtar springSecurityFilterChain org.springframework.beans.factory.NoSuchBeanDefinitionException: Nije definiran grah pod nazivom 'springSecurityFilterChain'
2. Uzrok
Uzrok ove iznimke je jednostavan - Spring Security traži grah s imenom springSecurityFilterChain (prema zadanim postavkama) i ne može ga pronaći. Ovaj grah je potreban glavnom Proljetni sigurnosni filtar - the DelegatingFilterProxy - definirano u web.xml:
springSecurityFilterChain org.springframework.web.filter.DelegatingFilterProxy springSecurityFilterChain / *
Ovo je samo proxy koji svu svoju logiku delegira na springSecurityFilterChain grah.
3. Rješenje
Najčešći razlog zašto ovaj grah nedostaje u kontekstu je taj što ima sigurnosnu XML konfiguraciju Ne element definirano:
Ako XML konfiguracija koristi sigurnosni prostor imena - kao gornji primjer, zatim deklariranje jednostavan element osigurat će da je grah filtra stvoren i da se sve pravilno pokreće:
Drugi mogući razlog je taj sigurnosna konfiguracija uopće nije uvezena u cjelokupni kontekst web aplikacije.
Ako je imenovana sigurnosna XML datoteka konfiguracije springSecurityConfig.xml, budi siguran resurs se uvozi:
@ImportResource ({"classpath: springSecurityConfig.xml"})
Ili u XML-u:
Napokon, zadani naziv zrna filtra može se promijeniti u web.xml - obično za upotrebu postojećeg filtra s Spring Security:
springSecurityFilterChain org.springframework.web.filter.DelegatingFilterProxy targetBeanName customFilter
4. Zaključak
Ovaj članak raspravlja o vrlo specifičnom proljetnom sigurnosnom problemu - nedostajućem lancu filtra - i prikazuje rješenja za ovaj uobičajeni problem.