BuildingBlocks.FileServer, fiziksel disk üzerindeki dosyaları HTTP üzerinden sunar. İki çalışma modu vardır: korumasız PhysicalFileProvider veya kimlik kontrolü yapan PrivateMaviDepoFileProvider. İkinci modda her dosya/dizin erişiminden önce IFileServerUserContext.IsAuthenticated() çağrılır; yetkisiz istek 404 (var olmuyormuş gibi) döner.
DI ve middleware
Konfigürasyon — FileProviderOptions
FileProvider bölümüne bind edilir.
UseMaviDepoFileServer, auth seçimini config’ten okunan FileProvider:EnableAuth anahtarıyla yapar. POCO sınıfında bu alan tarihsel olarak EnableAuthorization adını taşır; etkin olan değer middleware’in okuduğu FileProvider:EnableAuth anahtarıdır.PrivateMaviDepoFileProvider — auth-aware sunum
PhysicalFileProvider’ı genişletir. GetFileInfo/GetDirectoryContents çağrılarında bir scope açıp IFileServerUserContext çözer:
IFileServerUserContext uygulama tarafından implement edilir: KullaniciId, TenantId, Eposta, Token, IsAuthenticated().
Keycloak query-param token
<img src> / <a href> gibi tarayıcı kaynaklı isteklere Authorization header eklenemez. Bu yüzden Keycloak JWT şeması /files (ve /hubs) yolları için token’ı query string’den okuyacak şekilde yapılandırılmıştır:
Kullanım
İlgili
Keycloak
JWT şeması ve query-param token okuma.
Kimlik doğrulama
Şema seçimi ve yetkilendirme.
Docker (prod)
nginx-proxy arkasında dosya yolları.
API
Statik içerik ve controller pipeline’ı.