Bu proje, rol tabanlı erişim kontrolü (RBAC) ile basit bir kullanıcı yönetim sistemi sağlar. Spring Boot ve Spring Security'yi kullanarak kullanıcı kimlik doğrulama ve yetkilendirme özelliklerini içerir.
User
sınıfı, sistemin bir kullanıcısını temsil eder.- Alanlar arasında ad, kullanıcı adı, parola, yetkiler ve hesap durumunu belirten değişkenler bulunur.
Role
enum'u, sistemdeki bir rolü temsil eder.- Önceden tanımlanmış rolleri içerir: USER, ADMIN, MOD.
PasswordEncoderConfig
, şifre kodlaması için bir BCryptPasswordEncoder bean sağlar. Bu bean sayesinde şifre kodlanarak veritabanına kaydedilir.
SecurityConfig
, Spring Security'yi HTTP Temel kimlik doğrulaması ve rol tabanlı yetkilendirme için yapılandırır.- Genel ve özel kaynaklar için erişim kurallarını tanımlar.
- H2 Console erişimini ADMIN rolü için etkinleştirir.
UserService
, kullanıcı yönetimi için iş mantığını sağlar.- Kullanıcı oluşturma ve kullanıcı adına göre kullanıcı alma gibi yöntemleri içerir.
UserDetailsServiceImpl
, UserDetailsService arayüzünü uygular.- Kullanıcı ayrıntılarını UserService'den alır ve bunları UserDetails'e dönüştürür.
/public
endpoint'inde basit bir selamlama için bir API uç noktası sağlar.
/private
endpoint'inde özel selamlamalar için API uç noktaları sağlar.- KULLANICI ve YÖNETİCİ rolleri için özel selamlamalar içerir.
Projenin yerel ortamınızda çalıştırılabilmesi için aşağıdaki adımları takip edebilirsiniz:
-
Depoyu Klonlayın:
git clone https://github.com/ADBERILGEN35/BasicAuthApplication.git
-
Proje Dosyalarını Açın: Proje dosyalarını tercih ettiğiniz IDE veya metin düzenleyici ile açın.
-
Veritabanı Yapılandırması: Veritabanınızın doğru bir şekilde yapılandırıldığından emin olun (örneğin, H2 bellek içi veritabanı).
-
Uygulamayı Çalıştırın:
bash./gradlew bootRun
-
Public Erişim: Postman'den http://localhost:8080/public adresine istek atın.
-
Private Erişim: Tarayıcınızda http://localhost:8080/private adresine istek atın ve uygun kimlik doğrulama bilgilerine sahip olduğunuzdan emin olun.
Not: Uygulamayı çalıştırmadan önce gerekli bağımlılıkları yüklemek için Gradle veya başka bir bağımlılık yönetici kullanmanız gerekebilir.