Skip to content

M09 · Bab 8± 60 menitDraf AI

Proyek Mini: API Pesanan yang Aman

Tujuan belajar

  • Mengamankan API pesanan dari M08 sebagai JWT resource server dengan role CUSTOMER dan ADMIN
  • Menerapkan cek kepemilikan pesanan sehingga customer tidak bisa membaca pesanan orang lain
  • Menambahkan rate limit sederhana per user yang membalas 429 Too Many Requests
  • Mendokumentasikan API beserta bearer JWT dengan springdoc OpenAPI
  • Menulis test keamanan untuk skenario 401, 403, 404, dan 200, lalu menilai hasil dengan checklist OWASP API

Prasyarat: Dokumentasi API dengan OpenAPI

Kuis

5 soal · lulus bila minimal 70% benar

1.Customer u-ani memanggil GET /api/orders/42, padahal pesanan 42 milik u-budi. Respons apa yang dipilih di proyek ini, dan kenapa?
2.Apa output program FixedWindowRateLimiter di bab ini untuk baris budi request 4?
3.Test mvc.perform(get("/api/admin/orders").with(jwt().authorities(new SimpleGrantedAuthority("ROLE_CUSTOMER")))) mengharapkan status apa?
4.Setelah filter rate limit dipasang, semua request yang melewati limit tetap dihitung per alamat IP, bukan per user, padahal kodenya membaca authentication.getName(). Penyebab paling mungkin?
5.Field customerId dikirim client di body POST /api/orders. Apa yang sebaiknya dilakukan server?

Jawab semua soal dulu (0/5)