Doa Penapis Berganda dalam Pendaftaran Penapis Kacang Musim Bunga
Apabila bekerja dengan Keselamatan Spring, mendaftarkan penapis sebagai kacang boleh mengakibatkan doa berganda yang tidak disengajakan . Ini berlaku apabila mekanisme pendawaian automatik Spring mendaftarkan penapis dua kali: sekali melalui proses penemuan kacang konvensional dan sekali lagi disebabkan oleh subkelas penapis bagi GenericFilterBean Spring.
Punca Masalah:
Penyebabnya ialah pendaftaran automatik penapis sebagai kacang oleh Spring Boot. Ini bertujuan untuk memudahkan konfigurasi penapis tetapi boleh menyebabkan lebihan apabila penapis ditakrifkan secara eksplisit dan didaftarkan dengan Spring Security.
Betulkan:
Untuk menyelesaikan isu ini, anda mesti memaklumkan dengan jelas Spring Boot untuk tidak mendaftarkan penapis anda sebagai kacang. Ini boleh dicapai menggunakan FilterRegistrationBean, seperti dalam dokumentasi Spring:
@Bean public FilterRegistrationBean<MyFilter> registration(MyFilter filter) { FilterRegistrationBean<MyFilter> registration = new FilterRegistrationBean<>(filter); registration.setEnabled(false); return registration; }
Dengan melumpuhkan pendaftaran melalui setEnabled(false), anda secara berkesan menghalang Spring Boot daripada mendaftarkan penapis secara automatik. Walau bagaimanapun, penapis anda masih akan dikenali dan digunakan oleh Spring Security kerana pendaftarannya dalam kaedah konfigurasi.
Atas ialah kandungan terperinci Mengapa Penapis Keselamatan Musim Bunga Saya Dikenakan Dua Kali?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!