לא מוגדר שום שעועית בשם '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 - שעועית המסנן החסרה - ומראה את הפתרונות לנושא נפוץ זה.