Skip to content

M09 · Bab 2± 50 menitDraf AI

User dan Password

Tujuan belajar

  • Memuat user dari database lewat UserDetailsService dan menghubungkannya ke Spring Security
  • Menyimpan password dengan PasswordEncoder (DelegatingPasswordEncoder, BCrypt atau Argon2), bukan plain text/MD5/SHA polos
  • Membangun endpoint registrasi dengan validasi, email unik, dan respons yang tidak membocorkan data
  • Menerapkan kebijakan password modern (NIST SP 800-63B) dan mengenali kebutuhan rate limit
  • Merancang alur reset password dengan token acak sekali pakai yang disimpan dalam bentuk hash

Prasyarat: Dasar Spring Security

Kuis

6 soal · lulus bila minimal 70% benar

1.Database lama menyimpan password sebagai SHA-256(password) tanpa salt. Kenapa ini dianggap tidak aman?
2.Apa output kode ini? PasswordEncoder enc = new BCryptPasswordEncoder(); String a = enc.encode("kopi123"); String b = enc.encode("kopi123"); System.out.println(a.equals(b) + " " + enc.matches("kopi123", b));
3.Endpoint registrasi membalas 409 Conflict: email sudah terdaftar bila email dipakai. Tim security menandainya sebagai temuan. Apa masalahnya?
4.Menurut NIST SP 800-63B, kebijakan password mana yang dianjurkan?
5.Saat mendesain reset password, apa yang seharusnya disimpan di tabel password_reset_tokens?
6.Setelah migrasi, login selalu gagal dengan log Given that there is no default password encoder configured, each password must have a password encoding prefix. Penyebab paling mungkin?

Jawab semua soal dulu (0/6)