Modul Training Java Spring Boot Day - 4
Modul Training Java Spring Boot Day - 4
Class diatas berfungsi untuk menjadi penampung object dari request body api
1. @Bean("passwordEncoder")
- Anotasi: @Bean menandakan bahwa method ini akan menghasilkan bean,
yaitu objek yang dikelola oleh kontainer Spring.
- Parameter: "passwordEncoder" adalah nama bean yang akan digunakan
untuk mengakses objek ini secara spesifik dalam konteks aplikasi.
2. public PasswordEncoder passwordEncoder()
- Fungsi: Method ini mengembalikan objek yang mengimplementasikan
antarmuka PasswordEncoder. PasswordEncoder digunakan untuk
mengenkripsi dan memverifikasi kata sandi (password) dalam konteks
keamanan aplikasi.
3. return new BCryptPasswordEncoder(BCryptVersion.$2Y);
- Fungsi: Method ini membuat dan mengembalikan instance dari
BCryptPasswordEncoder. Algoritma pengenkripsian yang digunakan
adalah BCrypt, yang merupakan algoritma yang umum digunakan untuk
mengamankan kata sandi.
- Parameter: BCryptVersion.$2Y menentukan versi BCrypt yang digunakan.
Pilihan versi $2Y adalah versi yang umum digunakan dan
direkomendasikan.
Dengan cara ini, bean dengan nama "passwordEncoder" dan implementasi
BCryptPasswordEncoder dapat diakses dan digunakan dalam konfigurasi
Spring Security untuk mengenkripsi dan memverifikasi kata sandi. Penggunaan
PasswordEncoder ini penting untuk meningkatkan keamanan aplikasi dengan
menyimpan kata sandi pengguna dalam bentuk terenkripsi, sehingga kata sandi
yang sebenarnya tidak disimpan dalam bentuk teks biasa.
1. loadUserByUsername(String username)
- Fungsi: Metode ini digunakan untuk memuat informasi lengkap tentang
pengguna (user) berdasarkan username yang diberikan.
- Parameter: username adalah nama pengguna (username) yang akan
digunakan untuk mengidentifikasi pengguna.
- Pengembalian Nilai: Objek UserDetails yang mencakup informasi seperti
username, password, peran (roles), dan detail lainnya tentang pengguna.
- Exception: Jika pengguna dengan username yang diberikan tidak
ditemukan, metode dapat melempar UsernameNotFoundException.
2. Implementasi dari UserDetailsService umumnya terdapat dalam kelas
khusus yang bertanggung jawab untuk mengakses penyimpanan data
(seperti database) dan mengambil informasi pengguna. Implementasi ini
biasanya diintegrasikan dengan Spring Security untuk mendukung
otentikasi dan otorisasi.
3. Contoh implementasi UserDetailsService bisa melibatkan query ke
database untuk mengambil informasi pengguna, atau memanfaatkan
layanan lain yang menyimpan data pengguna. Setelah informasi pengguna
ditemukan, objek UserDetails dibuat dan dikembalikan kepada Spring
Security untuk proses otentikasi lebih lanjut.
4. Secara keseluruhan, UserDetailsService berperan penting dalam
pengembangan aplikasi yang menggunakan Spring Security, karena
menyediakan cara untuk mengambil informasi pengguna dari sumber data
eksternal dan mendukung otentikasi pengguna dalam aplikasi.