9-modul · 6-dars: Security · JWT · CORS

Daraja: Ilg'or

Security · JWT · CORS. Spring Boot bo‘yicha nazariya, amaliy namuna va mustaqil mashq.

Tushuntirish

## Dars maqsadi Security · JWT · CORS tushunchalarini farqlash, nima uchun kerakligini izohlash va kichik misolda qo‘llash.

## Nazariya REST API authenticationi Basic, session/cookie, bearer token yoki OAuth2 kabi tanlangan modelga bog'liq. Basic credentialni Base64 bilan kodlaydi, shifrlamaydi; HTTPS majburiy. Authorization serverdagi har amal va obyektga qo'llanadi: faqat login borligi boshqa foydalanuvchi yozuvini o'qishga huquq bermaydi. JWT imzolangan claimlar konteyneridir. Keng tarqalgan JWS compact ko'rinishida header.payload.signature bo'ladi. Header algoritm/metama'lumot, payload subject, issuer, audience, vaqt va boshqa claimlarni saqlaydi. Signature o'zgartirishni aniqlaydi, mazmunni yashirmaydi. Server ruxsat etilgan algoritm, imzo, exp, issuer va audience kabi talablarni tekshirishi kerak. CORS browserning boshqa origindan response o'qish siyosatidir; u authentication yoki serverdan-server himoyasi emas. Credentialli CORSda aniq origin ishlatiladi. Access token qisqa yashasin; refresh aylanishi, logout/revocation va rol o'zgarishi alohida loyihalansin. XSS sabab tokenni localStoragega joylash xavfini, cookie ishlatilsa CSRF himoyasini baholang.

## Manbalar [Moduldagi savollar yo‘nalishi](https://github.com/jlkesh/pdp_online_java_lessons/blob/main/interviewquestions/9-module%28Spring%20Boot%29.md) [Rasmiy qo‘llanma](https://docs.spring.io/spring-boot/reference/)

Kod quyida o‘quv namunasi sifatida berilgan. To‘liq ilova uchun import, dependency va konfiguratsiya kerak bo‘lishi mumkin. SQLni faqat ajratilgan test bazasida bajaring.

Kod misoli

// Spring Security resource server JWT tekshiruvini bajaradi:
http.oauth2ResourceServer(o -> o.jwt(
  org.springframework.security.config.Customizer.withDefaults()));
// Decoder/JWK yoki kalit, issuer va audience siyosati alohida sozlanadi.

Keng tarqalgan xatolar

Mashqlar

Teglar: pdp, modul-09, nazariya

Interaktiv ko'rinish (viktorina, izohlar, tarix)