Hata kodları
DAT uygulamaları, insanların okuyabildiği mesajlardan ayrı olarak kararlı hata kodları sunar. Programlar kararı mesaj dizgelerini karşılaştırarak değil, kodu ve yeniden deneme sınıfını kullanarak verir.
Okuma biçimi
DAT_<alan>_<neden>| Önek | Alan |
|---|---|
DAT_TOKEN_ | DAT dizgesi ve sona erme |
DAT_CERT_ | Sertifika dizgesi ve durumu |
DAT_SIG_ | İmzalama ve doğrulama |
DAT_CRYPTO_ | Şifreleme ve şifre çözme |
DAT_KEY_ | Anahtar biçimi ve yetkiler |
DAT_MANAGER_ | Sertifika yöneticisi |
DAT_CONFIG_ | Çağrı bağımsız değişkenleri ve ayarlar |
DAT_INTERNAL_ | Çalışma zamanının iç işlevleri |
DAT_CMS_ | CMS istemci eşitlemesi |
DAT_AUTH_, DAT_REQ_, DAT_STORE_ | CMS sunucusu |
_UNKNOWN yalnızca ilgili alanda başka bir kodla sınıflandırılamayan hatalarda kullanılır. Aynı neden farklı alanlarda da aynı adı kullanır.
Yeniden deneme sınıfları
| Sınıf | Anlam | İşlem |
|---|---|---|
| Geçici | Dış durum düzelirse başarılı olabilir | Gecikmeli ve sınırlı yeniden deneme |
| Durum | Sertifika eşitlemesi veya zaman değişirse başarılı olabilir | Gerekli durumu yeniledikten sonra yeniden deneme |
| Kalıcı | Aynı girdiyle tekrarlandığında başarısız olur | Girdiyi, ayarı veya kodu düzeltme |
Token ve sertifika
DAT_TOKEN_MALFORMEDDAT'nin alan sayısı, sayısal veya Base64Url gösterimi standarda uymuyor. Girdiyi atın.
DAT_TOKEN_EXPIREDDAT'nin sona erme zamanı geçerli zamana eşit veya daha eski. Yeni bir DAT alınmalıdır.
DAT_CERT_MALFORMEDSertifika dizgesinin yapısı veya alan gösterimi yanlıştır.
DAT_CERT_NOT_FOUNDDAT'nin `cid` değerine karşılık gelen sertifika yok. Sertifika eşitleme durumunu denetleyin.
DAT_CERT_NOT_SYNCEDKullanılacak sertifika servise henüz ulaşmamış olabilir. Hemen eşitleyip yeniden değerlendirin.
DAT_CERT_NOT_YET_VALIDSertifikanın başlangıç zamanı henüz gelmedi. Sistem zamanını ve sertifika dağıtım zamanını denetleyin.
DAT_CERT_EXPIREDSertifikanın doğrulanabilir süresi sona erdi.
DAT_CERT_DUPLICATETek bir içe aktarma listesinde aynı `cid` tekrarlandı. İçe aktarmanın tamamı reddedilir.
İmza, şifreleme ve anahtarlar
DAT_SIG_MISMATCHİmza gövdeyle uyuşmuyor. DAT değiştirilmiş veya farklı bir anahtarla imzalanmış olabilir.
DAT_CRYPTO_TAG_MISMATCHAES-GCM kimlik doğrulama etiketi uyuşmuyor. Şifreli metnin değiştirilip değiştirilmediğini veya sertifika uyuşmazlığını denetleyin.
DAT_KEY_INVALIDAnahtar uzunluğu, biçimi veya algoritma birleşimi geçersiz.
DAT_SIG_KEY_MISSINGYalnızca doğrulama sertifikasıyla DAT verilmeye çalışıldı. Token veren servisin tam sertifikaya ihtiyacı vardır.
DAT_SIG_MISMATCH ve DAT_CRYPTO_TAG_MISMATCH, açık güvenlik olayı API'sinin doğru olarak sınıflandırdığı hatalardır. Tek bir geçersiz girdi servis arızası değildir, ancak yinelenirse güvenlik gözlemine alınır.
Yönetici ve yapılandırma
DAT_MANAGER_NO_CERTIFICATEYöneticide sertifika yok. Sertifikaları içe aktarın veya CMS eşitlemesini tamamlayın.
DAT_MANAGER_NO_ISSUABLE_CERTIFICATESertifikalar var, ancak o anda token verebilen tam sertifika yok. Neden zincirinde sona ermeyi, başlangıç zamanını veya verify-only durumunu denetleyin.
DAT_CONFIG_ARGUMENT_INVALIDÇağrı bağımsız değişkeni veya ayar değeri izin verilen aralığın dışında.
DAT_INTERNAL_UNAVAILABLEGeçerli platformda gereken şifreleme veya ağ işlevi yok.
CMS istemcisi
| Kod | Anlam | Genel işlem |
|---|---|---|
DAT_CMS_URI_INVALID | CMS URI biçimi hatalı | Ayarı düzeltme |
DAT_CMS_UNAUTHORIZED | Kimlik doğrulama başarısız | Tokenı düzeltme |
DAT_CMS_FORBIDDEN | Rolün yetkisi yok | Token rolünü denetleme |
DAT_CMS_ENDPOINT_NOT_FOUND | Yol yok veya farklı | CMS adresini ve yolunu denetleme |
DAT_CMS_NETWORK | Bağlantı veya aktarım başarısız | Ağı denetleyip gecikmeli yeniden deneme |
DAT_CMS_TIMEOUT | Zaman aşımı | Ağı ve zaman aşımını ayarlama |
DAT_CMS_SERVER_ERROR | CMS sunucu hatası | Sunucu durumunu denetleyip gecikmeli yeniden deneme |
DAT_CMS_RESPONSE_INVALID | Başarılı yanıtın biçimi hatalı | Sunucu-istemci sözleşmesini denetleme |
DAT_CMS_VERSION_RESET | Sunucu sürümü geriledi | CMS verisini ve dağıtım durumunu denetleme |
DAT_CMS_IMPORT_FAILED | Alınan sertifikalar uygulanamadı | Neden zincirini denetleme |
DAT_CMS_STOPPED | Kapatılmış yönetici kullanıldı | Yeni yönetici oluşturma veya çağrı sırasını düzeltme |
İlk eşitlemesi best-effort olan kütüphaneler hatayı son hata alanında saklar. Başlangıcın başarısız olması gerekiyorsa hatayı doğrudan döndüren veya fırlatan anında eşitleme API'sini kullanın.
CMS sunucusu
| Kod | HTTP | Anlam |
|---|---|---|
DAT_AUTH_UNAUTHORIZED | 401 | Token yok veya geçersiz |
DAT_AUTH_FORBIDDEN | 403 | Token rolü istek yetkisiyle uyuşmuyor |
DAT_REQ_ALG_UNSUPPORTED | 400 | Desteklenmeyen algoritma adı |
DAT_REQ_NOT_FOUND | 404·405 | Yol veya yöntem uyuşmazlığı |
DAT_REQ_TOO_LARGE | 413 | İstek gövdesi sınırının aşılması için ayrılmış kod |
DAT_STORE_UNAVAILABLE | 503 | Depo geçici olarak kullanılamıyor |
DAT_STORE_UNKNOWN | 500 | Depo işlemi sırasında sınıflandırılamayan hata |
Mevcut istemciler 2xx olmayan JSON yanıtlarındaki sunucu kodunu olduğu gibi göstermez; HTTP durumunu DAT_CMS_* koduna dönüştürür. Sunucu günlüğü ile istemci hata kodu farklı olabilir.
Dile göre denetleme
| Ortam | Hata kodu | Yeniden deneme sınıfı |
|---|---|---|
| Rust | err.code() | err.retry() |
| Go | dat.Code(err) | dat.Retry(err) |
| JavaScript / TypeScript | error.code | error.retry |
| Python | error.code | error.retry |
| Ruby | error.code | error.retry |
| Java / Kotlin | error.code | error.retry |
| C# | error.Code | error.Retry |
| C / C++ | dat_error_code(error) | dat_error_retry(error) |
Alt nedeni olan hatalar, ilgili dilin istisna zinciri veya neden sorgulama API'siyle incelenir.