Rumah >Java >javaTutorial >Mengapa Penapis Keselamatan Spring Saya Dikenakan Dua Kali Apabila Menggunakan @Autowired?
Doa Penapis Pendua dalam Spring Security dengan @Autowire
Apabila percubaan dibuat untuk menyuntik dependensi ke dalam penapis melalui @Autowire dalam Spring Security , ia boleh membawa kepada isu apabila penapis digunakan dua kali. Ini berlaku kerana Spring Boot mendaftarkan mana-mana kacang penapis secara automatik dengan bekas servlet.
Untuk mengelakkan seruan berganda ini, terdapat dua pilihan:
1. Elakkan Mendaftar Penapis sebagai Kacang
Ini boleh dicapai dengan tidak mendedahkan penapis sebagai kacang dan hanya mendaftarkannya dengan Spring Security. Ini memastikan Spring Boot tidak mendaftarkan penapis secara automatik dengan bekas servlet.
2. Gunakan FilterRegistrationBean
Jika kebergantungan pendawaian automatik ke dalam penapis adalah penting, maka penapis mestilah kacang. Walau bagaimanapun, Spring Boot perlu diarahkan secara jelas untuk tidak mendaftarkan penapis sebagai Penapis. Ini boleh dilakukan menggunakan FilterRegistrationBean, seperti yang ditunjukkan di bawah:
@Bean public FilterRegistrationBean registration(MyFilter filter) { FilterRegistrationBean<MyFilter> registration = new FilterRegistrationBean<>(filter); registration.setEnabled(false); return registration; }
Pendekatan ini menghalang Spring Boot daripada mendaftarkan penapis dengan bekas servlet sementara masih membenarkan penapis didawai secara automatik oleh Spring Security.
Atas ialah kandungan terperinci Mengapa Penapis Keselamatan Spring Saya Dikenakan Dua Kali Apabila Menggunakan @Autowired?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!