Skip to content

M09 · Bab 5± 50 menitDraf AI

Otorisasi: Role dan Kepemilikan Data

Tujuan belajar

  • Membedakan role, authority, dan scope serta cara Spring Security memetakannya (ROLE_, SCOPE_)
  • Menulis aturan akses per URL dengan authorizeHttpRequests dan requestMatchers(...).hasRole(...)
  • Mengaktifkan method security dengan @EnableMethodSecurity dan memakai @PreAuthorize
  • Mencegah IDOR/BOLA dengan cek kepemilikan resource berdasarkan user saat ini (@AuthenticationPrincipal Jwt)
  • Menguji aturan otorisasi dengan @WithMockUser dan post-processor jwt()

Prasyarat: OAuth2 dan OpenID Connect

Kuis

5 soal · lulus bila minimal 70% benar

1.Di SecurityFilterChain tertulis .requestMatchers("/api/admin/**").hasRole("ADMIN"). Token JWT user berisi claim scope: "admin" dan Spring Security membuat authority SCOPE_admin. Apa yang terjadi saat ia memanggil GET /api/admin/reports?
2.Endpoint GET /api/orders/{id} hanya dilindungi .authenticated(). Pelanggan A mengganti id di URL dengan ID pesanan milik pelanggan B dan berhasil melihat alamat B. Celah apa ini?
3.Kamu menambahkan @PreAuthorize("hasRole('ADMIN')") di method service, tetapi user biasa tetap bisa memanggilnya. Penyebab paling mungkin?
4.Mana cara paling aman merespons ketika pelanggan meminta pesanan yang ada di database tetapi bukan miliknya?
5.Di test MockMvc, cara yang tepat mensimulasikan request dengan JWT ber-subject u-ani dan authority SCOPE_orders:read adalah...

Jawab semua soal dulu (0/5)