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.


$config[zx-auto] not found$config[zx-overlay] not found