Spring Boot 3.0 ile Spring Security rol tabanlı Kimlik Doğrulama ve Yetkilendirme Uygulaması

May 08 2023
Merhaba öğrenciler, burada spring boot ile spring security implementasyonunu öğreneceğiz. Yay güvenliği, kimlik doğrulama, yetkilendirme ve yaygın saldırılara karşı koruma sağlar.

Merhaba öğrenciler, burada spring boot ile spring security implementasyonunu öğreneceğiz. Yay güvenliği, kimlik doğrulama, yetkilendirme ve yaygın saldırılara karşı koruma sağlar.

Kimlik doğrulama - Kimlik doğrulama, belirli bir kaynağa erişmeye çalışan kullanıcının kimliğini nasıl doğruladığımızdır, kimlik doğrulama gerçekleştirildikten sonra kimliği biliriz ve yetkilendirme gerçekleştirebiliriz.

Yetkilendirme - Yetkilendirme, belirli bir kaynağa/url'ye erişim izni vermek anlamına gelir.

Bahar Güvenliğini Uygulama Adımları

Adım 1: POM.XML'de Spring Security bağımlılığını ekleyin

Adım 2: Bir yapılandırma sınıfı oluşturun, kimlik doğrulama ve yetkilendirme yöntemleri ekleyin.

@EnableWebSecurity, uygulamamız için varsayılan güvenlik yapılandırması sağlar. Varsayılan güvenlik, hem HTTP güvenlik filtrelerini hem de güvenlik filtresi zincirini etkinleştirir ve uç noktalarımıza temel kimlik doğrulaması uygular.

@Configuration, Spring Boot'a sınıfı fasulye tanımları için taramasını ve bunları uygulama içeriğine kaydetmesini söyler.

AuthenticateProvider() yöntemi, kullanıcı adı, parola, roller gibi tüm kullanıcı ayrıntılarını depolamak için kullanılır. Spring Security, userDetailsService içeren DaoAuthenticationProvider sınıfını içerir ve parolayı şifrelemek için passwordEncoder.passwordEncoder() kullanılır ve şifreli parola DB'de saklanır.

SecutityFilterChain() yöntemi, kaynakları yetkilendirmek içindir, burada

.requestMatchers("/products/welcome","/products/new").permitAll() tüm kullanıcılara erişim vermek içindir, herhangi bir kullanıcı bu iki url'ye erişebilir.

requestMatchers(“/products/**”).authenticated(), kimliği doğrulanmış kullanıcılara erişim vermek içindir.

3. Adım: Rol tabanlı yetkilendirmeyi uygulayın

@PreAuthorizeek açıklama, yöntem yürütülmeden önce değerlendirilecek bir ifadeyi belirtmek için kullanılır. İfade true olarak değerlendirilirse, aksi takdirde yöntem yürütülür ve bir AccessDeniedException atılır.

Yöntem getAllProducts()yalnızca role sahip kullanıcılar tarafından yürütülebilirken ROLE_USER, getProductById()yöntem role sahip kullanıcılar tarafından yürütülebilir ROLE_ADMIN.

Uygulamayı test etme

Uygulamayı test etmek için örnek kod eklendi.

Kullanıcı kimlik bilgilerini verdikten sonra kullanıcı, kullanıcı uç noktasına erişebilir

Kullanıcı, kullanıcı kimlik bilgileriyle Yönetici uç noktasına erişmeye çalıştığında, hata sayfası görüntülenecek

Not: Bu uygulamanın çalışan github kodunu istiyorsanız, lütfen beni takip edin ve e-posta kimliğinizi yoruma yazın. Kaynak kodu bağlantısını e-postanıza göndereceğim.

Bölüm 2: JWT ile Bahar Güvenliği Kimlik Doğrulaması ve Yetkilendirme

Diğer Spring Boot Kavramları için bağlantılara bakın:

Bahar AOP öğreticisi

Bahar Önyükleme Günlüğü Eğitimi

Spring Boot'da Merkezi Yapılandırma

En sık kullanılan Hazırda bekletme ek açıklamaları

Röportajlar için Önemli Mikro Hizmet Tasarım Kalıpları