לא מוגדר שום שעועית בשם 'springSecurityFilterChain'

1. הבעיה

מאמר זה דן בבעיה בתצורת אבטחה של אביב - תהליך האתחול של היישום המביא את החריג הבא:

חמור: חריג החל מסנן springSecurityFilterChain org.springframework.beans.factory.NoSuchBeanDefinitionException: לא מוגדרת שעועית בשם 'springSecurityFilterChain'

2. הסיבה

הסיבה לחריג זה היא פשוטה - Spring Security מחפשת שעועית בשם springSecurityFilterChain (כברירת מחדל), ולא מצליח למצוא אותו. שעועית זו נדרשת על ידי העיקרית מסנן אבטחה באביב - ה DelegatingFilterProxy - מוגדר ב web.xml:

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

זה רק פרוקסי שמאציל את כל ההיגיון שלו ל springSecurityFilterChain אפונה.

3. הפיתרון

הסיבה הנפוצה ביותר שחסר שעועית זו מההקשר היא שיש לתצורת ה- XML ​​לאבטחה לא אֵלֵמֶנט מוּגדָר:

אם תצורת ה- XML ​​משתמשת במרחב שמות האבטחה - כדוגמה לעיל, אז מצהירים אלמנט פשוט יבטיח כי שעועית המסנן נוצרת והכל יתחיל כהלכה:

סיבה אפשרית נוספת היא ש תצורת האבטחה אינה מיובאת כלל בהקשר הכולל של יישום האינטרנט.

אם שמו של קובץ התצורה של אבטחת ה- XML springSecurityConfig.xml, לוודא המשאב מיובא:

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

או ב- XML:

לבסוף, ניתן לשנות את שם ברירת המחדל של שעועית המסנן ב- web.xml - בדרך כלל להשתמש במסנן קיים עם Spring Security:

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

4. מסקנה

מאמר זה דן בבעיה ספציפית של Spring Security - שעועית המסנן החסרה - ומראה את הפתרונות לנושא נפוץ זה.


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