Keselamatan Musim Bunga: Berbilang Konfigurasi HTTP tidak Berfungsi
Artikel ini meneroka isu Keselamatan Musim Bunga di mana berbilang konfigurasi HTTP tidak berfungsi seperti yang diharapkan.
Masalah
Seorang pembangun cuba untuk mewujudkan halaman log masuk yang berbeza dan set URL yang dilindungi menggunakan berbilang kelas WebSecurityConfigurerAdapter dan menghadapi masalah pelaksanaan. Keselamatan untuk satu kumpulan corak URL berfungsi dengan betul, tetapi kumpulan lain tidak dijamin, menyebabkan tiada ubah hala ke halaman log masuk.
Penyelesaian
Kepada menyelesaikan isu ini, pembangun perlu memastikan susunan pelaksanaan yang betul untuk konfigurasi WebSecurityConfigurerAdapter. Spring Security memproses konfigurasi mengikut susunan yang diisytiharkan. Dalam kes ini, konfigurasi pertama mengehadkan akses hanya kepada corak URL tertentu (/admin/), manakala konfigurasi kedua bertujuan untuk melindungi semua URL lain. Walau bagaimanapun, memandangkan konfigurasi pertama sepadan dengan semua URL (/), ia diutamakan dan berkesan menghalang konfigurasi kedua daripada digunakan.
Konfigurasi Betul
@Configuration @Order(1) public static class ProviderSecurity extends WebSecurityConfigurerAdapter { // Configure security for /admin/** } @Configuration @Order(2) public static class ConsumerSecurity extends WebSecurityConfigurerAdapter { // Configure security for /consumer/** }
Dengan memberikan nilai @Order 2 kepada konfigurasi ConsumerSecurity, kami memastikan ia diproses selepas ProviderSecurity konfigurasi. Dengan cara ini, ia boleh menyekat akses kepada URL /consumer/** seperti yang dimaksudkan.
Atas ialah kandungan terperinci Keselamatan Musim Bunga: Mengapa Berbilang Konfigurasi HTTP Saya Tidak Berfungsi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!