Spring Security Nedir? Spring Boot ile Authentication ve Authorization (2026)

Spring Security, Spring tabanlı uygulamalarda kimlik doğrulama (authentication) ve yetkilendirme (authorization) işlemlerini yöneten güçlü ve esnek bir güvenlik framework’üdür.

Kısa özet: Bu rehberde Spring Security’nin nasıl çalıştığını, filter chain mantığını ve Spring Boot ile temel konfigürasyonu adım adım ele alıyoruz.

Token tabanlı mimariyi detaylı öğrenmek için: Token Nedir? Access ve Refresh Token rehberine de göz atabilirsiniz.


Spring Security Nedir?

Spring Security, Java ve özellikle Spring Boot uygulamalarında kullanıcı kimliğini doğrulamak ve kaynaklara erişimi kontrol etmek için kullanılan bir güvenlik katmanıdır.

  • Login mekanizması
  • Role bazlı yetkilendirme
  • JWT doğrulama
  • CSRF koruması
  • Session yönetimi

Authentication vs Authorization

Authentication (Kimlik Doğrulama)

Kullanıcının kim olduğunu doğrulama sürecidir.

Authorization (Yetkilendirme)

Doğrulanan kullanıcının hangi kaynaklara erişebileceğini belirler.

Authentication → "Kimsin?" Authorization → "Neye erişebilirsin?"

Spring Security Nasıl Çalışır?

Spring Security, HTTP isteklerini bir Filter Chain üzerinden geçirir. Her istek, güvenlik filtrelerinden geçerek doğrulanır.

Spring Security Filter Chain çalışma mantığı
Spring Security Filter Chain akışı

Temel akış:

HTTP Request
    ↓
Security Filter Chain
    ↓
Authentication Manager
    ↓
Authorization Check
    ↓
Controller

Spring Boot’ta Basit Security Config (Spring Boot 2.x)

Spring Security java kodu akışı
Spring Security kodları
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .authorizeRequests()
            .antMatchers("/public/**").permitAll()
            .antMatchers("/admin/**").hasRole("ADMIN")
            .anyRequest().authenticated()
            .and()
            .formLogin()
            .and()
            .csrf().disable();
    }
}

Bu yapı:

  • /public/** → herkes erişebilir
  • /admin/** → sadece ADMIN rolü
  • Diğer tüm endpointler → login gerekli

JWT ile Stateless Authentication

Modern API mimarilerinde Spring Security genellikle JWT (JSON Web Token) ile birlikte kullanılır.

Spring Security JWT authentication akışı
JWT ile stateless authentication mimarisi

JWT yapısını detaylı öğrenmek için: JWT Nedir?


Stateless vs Stateful Security

ÖzellikStatefulStateless (JWT)
SessionVarYok
ÖlçeklenebilirlikDaha düşükYüksek
Sunucu HafızasıKullanırKullanmaz

Production Best Practices (2026)

  • CSRF sadece session-based uygulamalarda açık bırakılmalı
  • JWT süresi kısa tutulmalı
  • Refresh token rotation uygulanmalı
  • Password encoder (BCrypt) kullanılmalı
  • Security config minimal tutulmalı

Sık Yapılan Hatalar

  • permitAll ile tüm endpointleri açmak
  • JWT doğrulamasını filtreye eklememek
  • CSRF mantığını yanlış anlamak
  • Password’ü plain text saklamak

Sonuç

Spring Security, modern Java uygulamalarında güvenliğin temelidir. Doğru yapılandırıldığında hem yüksek güvenlik hem de ölçeklenebilirlik sağlar.

API performansını izlemek için JavaMelody rehberine de göz atabilirsiniz.

Latest Software Developers - Yazılım Blog Yazarı Profil Resmi

Yazar

LatestSoftwareDevelopers

Blog where the most up-to-date software is followed. (En güncel yazılımların takip edildiği blog sitesi)

Spring Boot ile ilgili yorumlar

Yorum Paylaş

EMail Zorunlu alanlar * *