Ana Sayfa/Java & Kurumsal Mimari
Java & Kurumsal Mimari·25 Ekim 2026·8 dk okuma

Spring Cloud 2026.0.0-RC1 ‘Paddington’, JDK 28 Project Valhalla (JEP 401 & JEP 539) ve Kritik Java JSSE Güvenlik Yaması (CVE-2026-91403)

Spring Boot 4.2 tabanlı Spring Cloud 2026.0.0-RC1 ('Paddington') ve Spring Data 2026.1.0-RC1 mimari yenilikleri, JDK 28 erken erişim sürecindeki Project Valhalla JEP 401 (Value Objects) ve JEP 539 (Strict Field Initialization) bellek düzleştirmesi ile CVSS 9.1 skorlu CVE-2026-91403 JSSE güvenlik yaması incelenmektedir.

Spring Cloud 2026.0.0-RC1 ‘Paddington’, JDK 28 Project Valhalla (JEP 401 & JEP 539) ve Kritik Java JSSE Güvenlik Yaması (CVE-2026-91403)

Kurumsal Java Ekosisteminde Ekim 2026 Bülteni: Mikroservis Ağı, Değer Nesneleri ve Kriptografik Güvenlik

2026 yılının Ekim ayı son haftasında kurumsal Java ve bulut-yerel (cloud-native) uygulama ekosistemi üç kritik katmanda önemli sürümlere sahne olmuştur: Uygulama çerçevesi katmanında, Spring Boot 4.2.0-RC1 temelini kullanan Spring Cloud 2026.0.0-RC1 ("Paddington") ve Spring Data 2026.1.0-RC1 aday sürümleri yayımlanarak mikroservis ağ geçitleri, olay tabanlı yapılandırma ve veri erişim katmanları modernize edilmiştir. Sanal makine (JVM) katmanında, Mart 2027 genel sürümüne hazırlanan JDK 28 içerisinde Project Valhalla'nın temel taşları olan JEP 401 (Value Objects) ve JEP 539 (Strict Field Initialization in the JVM) ile yığın (heap) bellekte işaretçisiz düzleştirme (flattening) yetenekleri olgunlaşmıştır. Güvenlik ve çalışma zamanı katmanında ise Oracle'ın yayımladığı CVE-2026-91403 (CVSS 9.1) acil JSSE güvenlik yaması ile Quarkus 4.0.0.Beta1 / 3.40.1.1 LTS güncellemeleri üretim ortamları için kritik geçiş adımları getirmiştir.


1. Spring Cloud 2026.0.0-RC1 (‘Paddington’) ve Spring Data 2026.1.0-RC1 Mimarisi

Spring ekibinin aylık senkronize yayın takvimi kapsamında Ekim 2026 sonunda duyurulan Spring Cloud 2026.0.0-RC1 (Paddington yayın treni), Spring Framework 7 ve Spring Boot 4.2.0-RC1 mimarisiyle tam uyumlu çalışacak şekilde yeniden yapılandırılmıştır. Dağıtık sistem mühendisliği açısından bu sürümde öne çıkan başlıca değişiklikler şunlardır:

  1. Spring Cloud Bus ve Spring Cloud Stream Birleşimi:
    Dağıtık mikroservis düğümleri arasında durum değişikliklerini ve yapılandırma yenileme olaylarını (RefreshRemoteApplicationEvent) yayınlayan Spring Cloud Bus, artık bağımsız bir yan proje olarak tutulmak yerine doğrudan Spring Cloud Stream deposu ve yaşam döngüsü içine entegre edilmiştir. Bu mimari sadeleştirme, Kafka ve RabbitMQ bağlayıcılarıyla olay güdümlü (event-driven) kontrol düzlemi kurulumunu tekilleştirmektedir.
  2. Spring Cloud Gateway MVC WebSocket ve Config OAuth 2 Desteği:
    Sanal iş parçacıkları (Virtual Threads) üzerinde çalışan senkron/Servlet tabanlı Spring Cloud Gateway Server MVC modülüne tam WebSocket yönlendirme desteği kazandırılmıştır. Böylece reaktif (WebFlux) yığına geçmeden, bloklamayan sanal iş parçacığı modeliyle çift yönlü WebSocket tünellemesi yapılabilmektedir. Aynı zamanda Spring Cloud Config Client bileşenine merkezi yapılandırma sunucularıyla güvenli iletişim için yerleşik OAuth 2 kimlik doğrulama desteği eklenmiştir.
  3. Kubernetes Configuration Watcher Yüksek Erişilebilirliği (HA) ve Spring Data 2026.1.0-RC1:
    Spring Cloud Kubernetes içerisinde ConfigMap ve Secret değişikliklerini izleyen Configuration Watcher bileşeni için çoklu kopya (replica) ve yüksek erişilebilirlik desteği devreye alınmıştır. Veri katmanında ise Mark Paluch tarafından duyurulan Spring Data 2026.1.0-RC1 (ve 2026.0.2 / 2025.1.8 servis sürümleri), Spring Data JPA 4.2.0-RC1 uyumluluğunun yanı sıra Spring Data Redis üzerinde SubscriptionListener arayüzünü uygulayan Spring bean'lerine Pub/Sub abonelik bildirimlerinin otomatik olarak iletilmesini sağlamaktadır.
mermaid
flowchart TD
    subgraph SpringCloud["Spring Cloud 2026.0.0-RC1 ('Paddington') & Spring Data 2026.1.0-RC1"]
        A["Spring Cloud Gateway MVC: Virtual Threads + Yerel WebSocket Yönlendirme"] --> B["Spring Cloud Config Client: Yerleşik OAuth 2 Token Doğrulaması"]
        B --> C["Spring Cloud Stream & Bus Birleşimi + Redis SubscriptionListener"]
    end

    subgraph Valhalla["JDK 28 Project Valhalla & Kriptografi (JEP 401, JEP 539, JEP 542)"]
        C --> D["JEP 401 Value Objects: Kimliksiz (Identity-Free) Düzleştirilmiş Bellek Dizileri"]
        D --> E["JEP 539 Strict Field Initialization: super() Öncesi Güvenli Alan Başlatma"]
        E --> F["JEP 542 PEMEncoder / PEMDecoder: Yerel X.509 ve Anahtar Kodlama"]
    end

    subgraph Security["Çalışma Zamanı Güvenliği: CVE-2026-91403 (CVSS 9.1) & Quarkus"]
        F --> G["JSSE Güvenlik Yaması: Zayıf eMudhra Ara CA Sertifikalarının İptali"]
        G --> H["Quarkus 4.0.0.Beta1 (Java 21+ & Jackson 3) ve 3.40.1.1 LTS (Netty 4.1.139)"]
    end

    style SpringCloud fill:#064e3b,stroke:#10b981,stroke-width:2px,color:#f8fafc
    style Valhalla fill:#1e1b4b,stroke:#f59e0b,stroke-width:2px,color:#f8fafc
    style Security fill:#0f172a,stroke:#38bdf8,stroke-width:2px,color:#f8fafc

2. JDK 28 Project Valhalla: JEP 401 (Value Objects) ve JEP 539 (Strict Field Initialization)

OpenJDK 28 erken erişim (Early-Access) derlemelerinde yapılandırılmış eşzamanlılık (JEP 543) ve ZGC adaptif yığın ölçeklemenin (JEP 545 / JEP 546) yanı sıra, Java'nın bellek modelini kökten değiştiren Project Valhalla önizleme JEP'leri (JEP 401 ve JEP 539) ile kriptografik PEM API'si (JEP 542) dikkat çekmektedir:

  • JEP 401 — Value Objects (Değer Nesneleri - Önizleme): Standart Java nesneleri bellekte her zaman benzersiz bir nesne kimliğine (object identity), kilit/GC bilgilerini taşıyan 64-bit veya 128-bitlik bir nesne başlığına (object header) ve işaretçi dolaylamasına (pointer indirection) sahiptir. value class veya value record anahtar sözcükleriyle tanımlanan değer nesneleri ise kimliksizdir (== operatörü referans yerine alan değerlerini karşılaştırır) ve değiştirilemezdir (immutable). Bu sayede JVM JIT derleyicisi, değer nesnelerini CPU yazmaçlarında (registers) skalar bileşenlerine ayırabilir (scalarization) ve yığın (heap) üzerindeki dizilerde başlık olmadan bitişik (flattened array) olarak saklayabilir.
  • JEP 539 — Strict Field Initialization in the JVM (Sıkı Alan Başlatma): Değer nesnelerinin çok iş parçacıklı ortamlarda bellek bütünlüğünü koruyabilmesi için, nesne alanlarının hiçbir koşulda varsayılan 0 veya null durumunda gözlemlenememesi gerekir. JEP 539, JVM sınıf dosyası düzeyinde alanların üst sınıf yapıcısı (super()) çağrılmadan önce, erken yapım aşamasında (early construction phase) kesin olarak başlatılmasını zorunlu kılan sıkı başlatma (strict initialization) semantiğini getirmektedir.
  • JEP 542 — PEM Encodings of Cryptographic Objects: Kriptografik anahtarların (PublicKey, PrivateKey), X.509 sertifikalarının ve sertifika iptal listelerinin (X509CRL) harici kütüphanelere (BouncyCastle vb.) ihtiyaç duyulmadan doğrudan standart PEM metin formatına dönüştürülmesini ve okunmasını sağlayan java.security.PEMEncoder ve PEMDecoder sınıflarını sunmaktadır.

Aşağıdaki Java 28 kodu, value record ile düzleştirilmiş finansal fiyat kademesi modellemesini, super() öncesi sıkı alan doğrulamasını ve Spring Data Redis SubscriptionListener entegrasyonunu bir arada göstermektedir:

java
package com.tastutanlabs.platform.market;

import org.springframework.data.redis.connection.Message;
import org.springframework.data.redis.connection.SubscriptionListener;
import org.springframework.stereotype.Component;

import java.nio.charset.StandardCharsets;
import java.util.Objects;

/**
 * JDK 28 JEP 401 (Value Objects) & JEP 539 (Strict Field Initialization)
 * ile Spring Data 2026.1.0-RC1 SubscriptionListener entegrasyon örneği.
 */
public class ValhallaMarketFeedEngine {

    // JEP 401: Kimliksiz (identity-free), nesne başlıksız düzleştirilmiş değer kaydı
    public value record PriceTick(
            long instrumentId,
            long priceMicros,
            int lotSize
    ) {
        // JEP 539: Alanlar nesne dışarı sızmadan önce kesin olarak doğrulanır ve atanır
        public PriceTick {
            if (instrumentId <= 0) {
                throw new IllegalArgumentException("Geçersiz enstrüman kimliği.");
            }
            if (priceMicros < 0 || lotSize <= 0) {
                throw new IllegalArgumentException("Fiyat ve lot büyüklüğü pozitif olmalıdır.");
            }
        }

        public long notionalMicros() {
            return Math.multiplyExact(priceMicros, (long) lotSize);
        }
    }

    // Spring Data 2026.1.0-RC1: Redis Pub/Sub abonelik olaylarını doğrudan yakalayan bileşen
    @Component
    public static class MarketChannelSubscriptionMonitor implements SubscriptionListener {

        @Override
        public void onChannelSubscribed(byte[] channel, long count) {
            String channelName = new String(Objects.requireNonNull(channel), StandardCharsets.UTF_8);
            System.out.printf("[Spring Data 2026.1] Kanal aboneliği etkin: %s (Toplam: %d)%n", channelName, count);
        }

        @Override
        public void onMessage(Message message, byte[] pattern) {
            // Gelen mesaj kimliksiz PriceTick dizisine sıfır GC başlık yüküyle dönüştürülür
            PriceTick tick = new PriceTick(1042L, 48_250_000L, 100);
            System.out.printf("İşlenen düzleştirilmiş kayıt hacmi: %d mikro-birim%n", tick.notionalMicros());
        }
    }
}

3. Kritik JSSE Güvenlik Uyarısı (CVE-2026-91403 - CVSS 9.1) ve Quarkus Güncellemeleri

Ekim 2026'nın kurumsal altyapı ekipleri açısından en acil gündem maddesi, Oracle tarafından 21 Ekim 2026'da yayımlanan CVE-2026-91403 kodlu kritik güvenlik uyarısıdır:

  1. CVE-2026-91403 (CVSS v3.1: 9.1 — JSSE Sertifika Güven Zinciri Zafiyeti):
    Oracle Java SE ve Oracle GraalVM çalışma zamanlarının JSSE (Java Secure Socket Extension) bileşenini etkileyen bu zafiyet (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N), kimlik doğrulaması veya kullanıcı etkileşimi gerektirmeksizin ağ üzerinden düşük karmaşıklıkla istismar edilebilmektedir. Sorunun kök nedeni, eMudhra tarafından verilen bazı ara Sertifika Otoritesi (Intermediate CA) sertifikalarının aşırı zayıf özel anahtarlar (weak private keys) içermesidir. Ağ üzerindeki bir saldırgan (MitM), bu zayıf anahtarları kırarak keyfi alan adları için geçerli görünen sahte TLS/HTTPS sertifikaları üretebilmekte ve Java istemcilerinin sunucu kimlik doğrulamasını tamamen atlatabilmektedir.
  2. Etkilenen Sürümler ve Çözüm:
    Zafiyet; Oracle Java SE 8u511, 11.0.33, 17.0.21, 21.0.13, 25.0.5 ve 27.0.1 sürümleri ile Oracle GraalVM for JDK (17.0.21, 21.0.13) ve GraalVM Enterprise Edition (21.3.20) sürümlerini etkilemektedir. Oracle'ın yayımladığı acil yama, etkilenen eMudhra ara CA sertifikalarını JDK güven deposunda (truststore) açıkça güvensiz (distrusted) olarak işaretleyerek riski ortadan kaldırmaktadır.
  3. Quarkus 4.0.0.Beta1 ve Acil LTS Sürümleri (3.40.1.1 / 3.33.4.1):
    Bulut-yerel Java tarafında Quarkus 4.0.0.Beta1, minimum çalışma zamanı gereksinimini Java 21 ve üzerine yükseltirken (Java 17 desteğini sonlandırarak) JSON serileştirme katmanını Jackson 3'e taşımıştır. Üretimdeki mevcut sistemler için yayımlanan Quarkus 3.40.1.1 ve 3.33.4.1 acil LTS güncellemeleri ise Netty 4.1.139.Final, Vert.x ve snappy-java bağımlılıklarındaki güvenlik açıklarını kapatmıştır.
Teknoloji / Bileşen Sürüm / JEP / CVE Kodu Temel Mimari Değişiklik veya Güvenlik Etkisi Önerilen Mühendislik Aksiyonu
Spring Cloud 2026.0.0-RC1 (Paddington) Cloud Bus -> Stream birleşimi, Gateway MVC WebSocket, Config OAuth2 Spring Boot 4.2.0-RC1 ile entegrasyon testi
Spring Data 2026.1.0-RC1 / 2026.0.2 Spring Data JPA 4.2-RC1, Redis SubscriptionListener olay iletimi Pub/Sub dinleyicilerinde yeni arayüz geçişi
JDK 28 (Valhalla) JEP 401 & JEP 539 Kimliksiz value class/record, başlıksız bellek ve sıkı alan başlatma Yoğun bellekli DTO dizilerinde EA derleme testi
JDK 28 (Kripto) JEP 542 Yerel PEMEncoder ve PEMDecoder ile X.509/anahtar dönüşümü Harici PEM ayrıştırıcı bağımlılıklarının azaltılması
Java SE & GraalVM CVE-2026-91403 (CVSS 9.1) JSSE'de zayıf eMudhra ara CA anahtarlarıyla TLS MitM riski Acil CPU yamalarının ve cacerts güncellemesinin uygulanması
Quarkus 4.0.0.Beta1 & 3.40.1.1 LTS Java 21+ tabanı, Jackson 3 geçişi ve Netty 4.1.139.Final yaması Üretim LTS kümelerinin 3.40.1.1 / 3.33.4.1'e yükseltilmesi

Sonuç ve Kurumsal Yol Haritası

Ekim 2026 sonundaki bu gelişmeler, kurumsal Java mimarilerinin hem performans hem de güvenlik cephesinde eşzamanlı bir dönüşüm geçirdiğini göstermektedir. Altyapı ekiplerinin ilk önceliği, dış ağlarla HTTPS/TLS üzerinden haberleşen tüm JVM ve GraalVM iş yüklerinde CVE-2026-91403 (CVSS 9.1) yamasını devreye almak ve Quarkus kümelerini 3.40.1.1 LTS sürümüne yükseltmek olmalıdır. Orta vadeli mimari planlamada ise Spring Cloud 2026.0.0-RC1 ('Paddington') ile gelen Servlet tabanlı Gateway MVC WebSocket yetenekleri ve JDK 28 JEP 401/539 değer nesneleri, yüksek verimli mikroservislerin bellek ve ağ maliyetlerini önemli ölçüde düşürecektir.

Konu Etiketleri
#JDK 28#Project Valhalla#JEP 401#Quarkus 4#Spring Cloud 2026#Spring Data#CVE-2026-91403#GraalVM
Emre Taştutan
Emre TaştutanGeliştirici & AI Meraklısı

Yazılım mimarisi, mikroservis ekosistemleri ve üretken yapay zeka uygulamaları üzerine çalışıyorum. TastutanLabs çatısı altında geliştirici araçları ve SaaS ürünleri inşa ediyorum.

@tastutanlabs • Instagram Mini-Blog

Bu analizin 6 kartlık görsel özetini Instagram'da inceleyin ve kaydedin

Her gün yazılım mimarisi, Java/JVM ve yapay zeka gelişmelerini kendi başına okunabilen 6 slaytlık Mini-Blog serileri halinde paylaşıyoruz.

Instagram'da Takip Et →
Bu Yazıyı Paylaş:

Yorumlar (0)

Düşüncelerinizi Paylaşın

Henüz yorum yapılmamış. İlk yorumu siz yapın!

Bu Kategorideki Diğer İncelemeler

Java & Kurumsal Mimari

JDK 28 ‘Confined Pools’ ile 6–18 Kat Hızlı Off-Heap Bellek Tahsisi, Spring AI 2.1.0-RC1 (@Tool Onay Kapısı) ve Spring Boot 4.2.0-RC1

JDK 28'de Foreign Function & Memory (FFM) API'sinin Arena.ofConfined() tahsisatlarını 6 ila 18 kat hızlandıran Confined Pools mimarisi; Spring AI 2.1.0-RC1 ile gelen @Tool(requiresConfirmation = true), evrensel MessagePart ve Session Memory özellikleri ile Spring Boot 4.2.0-RC1 yenilikleri incelenmektedir.

Emre TaştutanEmre Taştutan
7 dk
Java & Kurumsal Mimari

Spring Batch 6.1.0-RC1 (@JobParameter ve JdbcClient), Oracle JVM İlk Hata Teşhis Mimarisi (JFR/NMT) ve JetBrains PSI Tabanlı AI Ajanları

Spring Batch 6.1.0-RC1 ile gelen @JobParameter anotasyonu, MessageChannelPartitionHandler bellek optimizasyonu ve JdbcClient geçişi; Oracle JVM Area Lead Sandra Payne'in %1 altı ek yükle ilk üretim çöküşünü yakalayan JFR/NMT teşhis mimarisi ve Anton Arhipov'un açıkladığı JetBrains PSI semantik ajan altyapısı incelenmektedir.

Emre TaştutanEmre Taştutan
7 dk