Ingen bønner med navnet 'springSecurityFilterChain' er defineret

1. Problemet

Denne artikel diskuterer et Spring Security-konfigurationsproblem - applikationen bootstrapping-proces kaster følgende undtagelse:

SVERE: Undtagelse startende filter springSecurityFilterChain org.springframework.beans.factory.NoSuchBeanDefinitionException: Ingen bønne med navnet 'springSecurityFilterChain' er defineret

2. Årsagen

Årsagen til denne undtagelse er ligetil - Spring Security ser efter en bønne, der hedder springSecurityFilterChain (som standard) og kan ikke finde den. Denne bønne kræves af hovedmanden Forårs sikkerhedsfilter - det DelegeringFilterProxy - defineret i web.xml:

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

Dette er bare en proxy, der delegerer al sin logik til springSecurityFilterChain bønne.

3. Løsningen

Den mest almindelige årsag til, at denne bønne mangler i sammenhængen, er at XML-sikkerhedskonfigurationen har ingen element defineret:

Hvis XML-konfigurationen bruger sikkerhedsnavneområdet - som eksemplet ovenfor, erklæres derefter et simpelt element vil sikre, at filterbønnen oprettes, og at alt starter korrekt:

En anden mulig årsag er, at sikkerhedskonfigurationen er slet ikke importeret ind i den generelle kontekst af webapplikationen.

Hvis sikkerheds-XML-konfigurationsfilen er navngivet springSecurityConfig.xml, sørge for at ressourcen importeres:

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

Eller i XML:

Endelig kan filterbønnens standardnavn ændres i web.xml - normalt for at bruge et eksisterende filter med Spring Security:

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

4. Konklusion

Denne artikel diskuterer et meget specifikt Spring Security-problem - den manglende filterkædebønne - og viser løsningerne på dette fælles problem.


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