Er is geen boon met de naam ‘springSecurityFilterChain’ gedefinieerd

1. Het probleem

Dit artikel bespreekt een Spring Security-configuratieprobleem: het bootstrappingproces van de toepassing genereert de volgende uitzondering:

ERNSTIG: Uitzondering bij het starten van filter springSecurityFilterChain org.springframework.beans.factory.NoSuchBeanDefinitionException: Er is geen bean met de naam 'springSecurityFilterChain' gedefinieerd

2. De oorzaak

De oorzaak van deze uitzondering is eenvoudig: Spring Security zoekt naar een boon met de naam springSecurityFilterChain (standaard), en kan het niet vinden. Deze boon is vereist door het hoofdgerecht Veerbeveiligingsfilter - de DelegatingFilterProxy - gedefinieerd in de web.xml:

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

Dit is slechts een proxy die al zijn logica delegeert aan het springSecurityFilterChain Boon.

3. De oplossing

De meest voorkomende reden dat deze bean in de context ontbreekt, is dat de XML-beveiligingsconfiguratie Nee element gedefinieerd:

Als de XML-configuratie de beveiligingsnaamruimte gebruikt - zoals in het bovenstaande voorbeeld, dan declareert u een eenvoudig element zorgt ervoor dat de filterboon wordt aangemaakt en alles correct opstart:

Een andere mogelijke reden is dat de beveiligingsconfiguratie wordt helemaal niet geïmporteerd in de algemene context van de webapplicatie.

Als het XML-configuratiebestand voor beveiliging de naam springSecurityConfig.xml, zorg ervoor dat de bron wordt geïmporteerd:

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

Of in XML:

Ten slotte kan de standaardnaam van de filterboon worden gewijzigd in de web.xml - meestal om een ​​bestaand filter met Spring Security te gebruiken:

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

4. Conclusie

Dit artikel bespreekt een heel specifiek Spring Security-probleem - de ontbrekende filterketenboon - en toont de oplossingen voor dit veelvoorkomende probleem.