Sifat keamanan musim semi
Musim semi pada dasarnya adalah serangkaian filter, yang kemudian dimasukkan ke dalam rantai filter sebagai filter terpisah, yang disebut filterchainproxy. Seperti yang ditunjukkan pada gambar.
Faktanya, dapat ada beberapa rantai filter di bawah filterchainproxy untuk memverifikasi URL yang berbeda, dan filter yang dimiliki dalam rantai filter akan secara otomatis meningkat atau berkurang sesuai dengan layanan yang ditentukan. Jadi tidak perlu menampilkan dan mendefinisikan filter ini kecuali Anda ingin menerapkan logika Anda sendiri.
Kategori utama
Otentikasi
Otentikasi adalah antarmuka yang digunakan untuk mewakili informasi otentikasi pengguna. Sebelum pengguna masuk untuk mengotentikasi, informasi yang relevan akan dienkapsulasi ke dalam objek kelas implementasi spesifik otentikasi. Setelah otentikasi login berhasil, objek otentikasi dengan informasi yang lebih komprehensif, termasuk izin pengguna dan informasi lainnya akan dihasilkan, dan kemudian disimpan dalam SecurityContext yang dipegang oleh SecurityContextholder untuk program selanjutnya untuk dihubungi, seperti otentikasi hak akses.
AuthenticationManager
Antarmuka utama yang digunakan untuk verifikasi adalah AuthenticationManager, yang hanya memiliki satu metode:
Antarmuka Publik AuthenticationManager {Otentikasi Otentikasi (Otentikasi Otentikasi) Melemparkan AuthenticationException;}Mungkin ada tiga situasi setelah metode otentikasi () dijalankan:
Verifikasi berhasil dan otentikasi dengan informasi pengguna dikembalikan.
Verifikasi gagal, dan pengecualian Extentication Exception dilemparkan.
Tidak dapat menilai, kembali nol.
Penyedia Penyedia
ProverManager adalah implementasi paling umum dari AuthenticationManager di atas. Itu tidak menangani verifikasi dengan sendirinya, tetapi mendelegasikan verifikasi ke daftar AuthenticationProvider yang dikonfigurasi, dan kemudian memanggil setiap AuthenticationProvider secara bergantian untuk otentikasi. Dalam proses ini, selama AuthenticationProvider berhasil diautentikasi, tidak ada lagi verifikasi yang akan dilanjutkan. Hasil otentikasi ini akan langsung digunakan sebagai hasil otentikasi dari ProviderManager.
Proses sertifikasi
Pengguna masuk dengan nama pengguna dan kata sandi mereka.
Musim Semi Keamanan merangkum nama pengguna dan kata sandi yang diperoleh ke dalam kelas implementasi antarmuka otentikasi, seperti UsernamepasswordAuthenticationToken yang umum digunakan.
Lulus objek otentikasi yang dihasilkan di atas ke AuthenticationManager Implementasi Penyedia kelas untuk otentikasi.
ProviderManager memanggil setiap AuthenticationProvider pada gilirannya untuk otentikasi. Setelah otentikasi berhasil, objek otentikasi merangkum izin pengguna dan informasi lainnya akan dikembalikan.
Tetapkan objek otentikasi yang dikembalikan oleh AuthenticationManager ke SecurityContext saat ini.
Verifikasi Kustom
Dengan cadangan pengetahuan di atas, Anda dapat menyesuaikan metode verifikasi. Dari yang di atas, kita dapat melihat bahwa pada kenyataannya, pengembang otentikasi sebenarnya digunakan untuk melakukan operasi verifikasi. Oleh karena itu, jika Anda ingin menyesuaikan metode verifikasi, Anda hanya perlu mengimplementasikan AuthenticationProvider Anda sendiri dan kemudian menambahkannya ke ProviderManager.
Kustomisasi AuthenticationProvider
@ComponentPublic kelas CustomAuthenticationProvider mengimplementasikan AuthenticationProvider {@Override Otentikasi Publik Otentikasi (Otentikasi Otentikasi) melempar AuthenticationException {string name = authentication.getName (); String password = authentication.getCredentials (). ToString (); if (harus authenticateAgainstTheRdPartysystem ()) {// Gunakan kredensial // dan otentikasi terhadap sistem pihak ketiga mengembalikan new UsernamepasswordAuthenticationToken (nama, kata sandi, arraylist baru <> ()); } else {return null; }} @Override Public Boolean Dukungan (kelas <?> Otentikasi) {return authentication.equals (UserNamepasswordAuthenticationToken.class); }}Metode Supports () menerima parameter otentikasi untuk menentukan apakah otentikasi yang dilewati adalah jenis yang dapat ditangani oleh AuthenticationProvider.
Daftarkan AuthenticationProvider
Sekarang daftarkan AuthenticationProvider yang baru saja Anda buat di ProviderManager dan semua operasi selesai.
@Configuration@enableWebsecurity@componentscan ("org.baeldung.security") kelas public Configonfig memperluas WebSecurityConfigurerAdapter {@Autowired Private CustomAuthenticationProvider AuthProvider; @Override Protected void configure (authenticationManagerBuilder auth) melempar Exception {auth.authenticationProvider (authprovider); } @Override Protected void configure (httpsecurity http) melempar Exception {http.authorizeRequests (). AnyRequest (). Authenticated () .and () .httpbasic (); }}Meringkaskan
Di atas adalah analisis proses verifikasi keamanan musim semi dan metode verifikasi khusus yang diperkenalkan kepada Anda oleh editor. Saya harap ini akan membantu Anda. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas Anda tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!