Implementasi Otentikasi & Otorisasi berbasis peran Spring Security dengan Spring Boot 3.0

May 08 2023
Halo para pembelajar, di sini kita akan mengetahui implementasi keamanan pegas dengan boot pegas. Keamanan pegas memberikan autentikasi, otorisasi, dan perlindungan terhadap serangan umum.

Halo para pembelajar, di sini kita akan mengetahui implementasi keamanan pegas dengan boot pegas. Keamanan pegas memberikan autentikasi, otorisasi, dan perlindungan terhadap serangan umum.

Otentikasi - Otentikasi adalah cara kami memverifikasi identitas pengguna yang mencoba mengakses sumber daya tertentu, setelah otentikasi dilakukan, kami mengetahui identitasnya dan dapat melakukan otorisasi.

Otorisasi - Otorisasi berarti memberikan izin untuk mengakses sumber daya/url tertentu.

Langkah-langkah untuk Menerapkan Keamanan Musim Semi

Langkah 1: Tambahkan ketergantungan Spring Security di POM.XML

Langkah 2: Buat kelas konfigurasi, tambahkan metode autentikasi dan otorisasi.

@EnableWebSecurity menyediakan konfigurasi keamanan default untuk aplikasi kita. Keamanan default mengaktifkan filter keamanan HTTP dan rantai filter keamanan dan menerapkan autentikasi dasar ke titik akhir kami.

@Configuration memberi tahu Spring Boot untuk memindai kelas untuk definisi kacang dan mendaftarkannya dengan konteks aplikasi.

metode authenticateProvider() digunakan untuk menyimpan semua detail pengguna seperti nama pengguna, kata sandi, peran. Spring Security berisi kelas DaoAuthenticationProvider yang berisi userDetailsService dan passwordEncoder.passwordEncoder() digunakan untuk mengenkripsi kata sandi dan kata sandi terenkripsi disimpan dalam DB.

Metode SecutityFilterChain() adalah untuk mengotorisasi sumber daya, di sini

.requestMatchers("/products/welcome","/products/new").permitAll() adalah untuk memberikan akses ke semua pengguna, setiap pengguna dapat mengakses kedua url tersebut.

requestMatchers(“/products/**”).authenticated() adalah untuk memberikan akses ke pengguna yang diautentikasi.

Langkah 3: Terapkan otorisasi berbasis peran

@PreAuthorizeanotasi digunakan untuk menentukan ekspresi yang akan dievaluasi sebelum metode dijalankan. Jika ekspresi bernilai true, metode dijalankan sebaliknya, AccessDeniedException dilemparkan.

Metode getAllProducts()hanya dapat dijalankan oleh pengguna yang memiliki ROLE_USERperan, sedangkan getProductById()metode dapat dijalankan oleh pengguna yang memiliki ROLE_ADMINperan.

Menguji implementasi

Menambahkan kode contoh untuk menguji penerapannya.

Setelah memberikan kredensial pengguna, pengguna dapat mengakses titik akhir pengguna

Saat pengguna mencoba mengakses titik akhir Admin dengan kredensial pengguna, halaman kesalahan akan ditampilkan

Catatan: Jika Anda ingin kode github yang berfungsi untuk implementasi ini, ikuti saya dan beri komentar ID email Anda. Saya akan mengirimkan tautan kode sumber ke email Anda.

Bagian 2: Autentikasi & Otorisasi Keamanan Musim Semi dengan JWT

Rujuk tautan untuk Konsep Boot Musim Semi lainnya:

Tutorial AOP musim semi

Tutorial Logging Boot Musim Semi

Konfigurasi Terpusat di Spring Boot

Anotasi Hibernasi yang paling umum digunakan

Pola Desain Layanan Mikro yang Penting untuk Wawancara