Bu bölümde aşağıdaki konular açıklanmıştır:
Güvenlik
Veri kaynakları, aşağıdaki iki erişim modundan biriyle çalışabilir:
-
Varsayılan olan kısıtlı erişim modundayken veri kaynakları yalnızca veri kaynağının bulunduğu alan adından gelen istekleri sunar. Kısıtlı mod, siteler arası istek sahtekarlığı (XSRF) saldırılarını engeller ve bu nedenle kısıtlanmamış erişim moduna göre daha güvenlidir. Veri kaynağı kitaplığı, yalnızca durumu geri almak için bir arayüz sağladığından, sunucu tarafında durumu veya verileri değiştirmek için bir arayüz sağlamadığından yalnızca veri çalmaya çalışan XSRF saldırıları yapılabilir. Veri kaynağınızı, veri çalma girişimlerine karşı güvenli hale getirmek için çerez tabanlı kimlik doğrulama ile birlikte kısıtlı mod kullanılmalıdır. Kullanıcıların kimliğini doğrulama yöntemi, ortamınıza ve uygulamanıza bağlıdır.
-
Sınırsız erişim modundayken bir veri kaynağı, isteklerin kaynağı ne olursa olsun sunulur. Sınırsız modda çalışan bir veri kaynağı, çerez tabanlı kimlik doğrulama ile korunabilir ancak veri kaynağının XSRF saldırılarına karşı savunmasız olabileceğini unutmayın. Veri kaynağının alanı dışındaki web sayfalarında görselleştirmelerin veri kaynağına erişmesi gerekiyorsa veya veriler kamu alanındaysa ve korunması gerekmiyorsa kısıtlanmamış modu kullanın.
Görselleştirme isteği JSON, CSV veya HTML biçiminde bir yanıt biçimi belirtebilir. Yanıt biçimi, veri kaynağının veri tablosu döndürme biçimini belirler. CSV ve HTML biçimleri XSRF saldırılarına karşı savunmasız olduğundan, kısıtlanmış modda bile diğer alan adlarından erişilebilir.
Sınırsız modu belirtmek için aşağıdaki şekilde isRestrictedAccessMode()
değerini geçersiz kılın:
@Override protected boolean isRestrictedAccessMode() { return false; }
Kolaylık olması için kitaplıkla birlikte sağlanan tüm örnekler sınırsız erişim modunda çalışır.
Hatalar ve Uyarılar
Geçerli bir veri tablosu döndürmenin mümkün olmadığı veya istendiği durumlarda kitaplık bir
DataSourceException
atar. Örneğin, kullanıcının kimliği doğrulanamıyorsa. Hatalar veri tablosu oluşturmasını engellediğinde, kitaplık
bu istisnaları atar. Veri kaynağınıza özgü durumlarda istisna sunmak isteyebilirsiniz. Öyleyse DataSourceException
sınıfından devralma yaparak kendi hata istisna türlerinizi oluşturun. Ayrıca DataSourceException
sınıfını doğrudan bırakabilirsiniz.
DataSourceException
sınıfı base
paketindedir, aşağıdaki parametrelere sahiptir:
ReasonType
Bu parametre zorunludur. Kullanılabilir neden türleriReasonType
sıralamasında tanımlanır. Mevcut neden türlerinin hiçbiri uygun değilseOther
veyaInternal
özelliğini kullanabilirsiniz.
MessageToUser
Bu parametre, hata mesajının metnini tanımlar. Çoğu durumda bu ipucu, kullanıcıya ipucu olarak gösterilir. Bu nedenle, teknik veya gizli bilgilerin eklenmemesi önemlidir.
Hataları işlemek için datasource.DataSourceHelper
grubundaki yardımcı işlev grubunu kullanabilirsiniz. Bu durumda, DataSourceException
işlevini almak ve veri servi yanıtında bir hata ayarlamak için aynı setErrorServletResponse
adına sahip iki işlevi çağırın. Bu işlevlerden biri veri kaynağı isteği alır, diğeri ise HttpServlet request
işlemini alır ve DataSourceRequest
oluşturulamadığı durumlarda kullanılır. Özellikleri Tanımlama ve Etkinlik Akışı bölümünde örnek bir uygulama sunulmuştur.
Veri tablosu döndürülemiyorsa kitaplık bir hata döndürür. Veri tablosu döndürülebiliyorsa ancak bildirmekte bir sorun varsa kitaplık, veri tablosuyla birlikte bir uyarı döndürür. Örneğin, kitaplık aşağıdaki durumlarda bir uyarı oluşturur:
- sorgu görselleştirmesi, kısaltılmış verilerle sonuçlanan bir
LIMIT
sağlıyorsa. - bir sorgu görselleştirmesi bir
FORMAT
koşulunda geçersiz bir biçimlendirme kalıbı istiyorsa
Kendi uyarınızı eklemek için bir base.Warning
örneği oluşturun ve bunu addWarning()
yöntemini kullanarak veri tablonuza ekleyin.
Günlük Kaydı
Kitaplıkta Jakarta ortak günlükleri kullanılıyor. Jakarta ortak günlüğü, mevcut en yaygın günlük kaydı sistemleriyle kullanılabilir. Günlük kaydı sisteminiz standart değilse bir adaptör yazmanız gerekebilir. Daha ayrıntılı bilgi için Jakarta ortak günlük kaydı ana sayfasını inceleyin.
İstisna oluşturulduğunda günlüke bilgi gönderilir. Günlük dosyasına erişme şekliniz, kullandığınız günlük kaydı sistemine bağlıdır.