Nincs meghatározva a „springSecurityFilterChain” nevű bab

1. A probléma

Ez a cikk egy tavaszi biztonsági konfigurációs problémát tárgyal - az alkalmazás indítási folyamatát, amely a következő kivételt eredményezi:

SEVERE: Kivétel kezdő szűrő springSecurityFilterChain org.springframework.beans.factory.NoSuchBeanDefinitionException: Nincs meghatározva a „springSecurityFilterChain” nevű bab

2. Az ok

Ennek a kivételnek az oka egyértelmű - a Spring Security egy babot keres springSecurityFilterChain (alapértelmezés szerint), és nem találja meg. Ezt a babot a fő megköveteli Tavaszi biztonsági szűrő - a DelegatingFilterProxy - a web.xml:

 springSecurityFilterChain org.springframework.web.filter.DelegatingFilterProxy springSecurityFilterChain / * 

Ez csak egy proxy, amely minden logikáját átruházza a springSecurityFilterChain bab.

3. A megoldás

Ennek a babnak a hiánya a kontextusból a leggyakoribb oka az, hogy a biztonsági XML konfiguráció rendelkezik nem elem meghatározott:

Ha az XML konfiguráció a biztonsági névteret használja - a fenti példaként, akkor deklarálja egyszerű elem biztosítja, hogy a szűrőbab létrejöjjön, és minden megfelelően induljon:

Egy másik lehetséges ok az a biztonsági konfigurációt egyáltalán nem importálják a webes alkalmazás általános kontextusába.

Ha a biztonsági XML konfigurációs fájl neve van springSecurityConfig.xml, győződjön meg róla az erőforrás importálva van:

@ImportResource ({"classpath: springSecurityConfig.xml"})

Vagy XML-ben:

Végül a szűrőbab alapértelmezett neve megváltoztatható a web.xml - általában egy meglévő, rugós biztonsági szűrő használata:

 springSecurityFilterChain org.springframework.web.filter.DelegatingFilterProxy targetBeanName customFilter 

4. Következtetés

Ez a cikk egy nagyon specifikus Spring Security problémát - a hiányzó szűrőlánc-babot - tárgyal, és bemutatja ennek a gyakori kérdésnek a megoldásait.


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