Bu sayfa, Groovy script politikası kullanarak JSON formatındaki TC kimlik numarası doğrulama işleminin nasıl yapılacağını açıklar.
Bu groovy kodu ilk olarak TC kimlik numarasının karakter uzunluğunu kontrol eder. Eğer uygunsa, TC kimlik numarasını belirli bir algoritma ile doğrular. Bu doğrulama adımları, TC kimlik numarasının belirli matematiksel hesaplamalarını içerir. Herhangi bir hata durumunda requestErrorMessageToTargetAPI değişkenine uygun bir hata mesajı atanır ve isteğin backend tarafına gitmesi engellenmiş olur.
Groovy Script
import groovy.json.JsonSlurper
// JSON verilerini işlemek için bir ayrıştırıcı (parser) oluştur
def parser = new groovy.json.JsonSlurper()
// Gelen JSON verisini ayrıştır
def jsonResp = parser.parseText(requestBodyTextFromClient)
// JSON'dan alınan TC kimlik numaralarını al
def requestingUserIdentityCardNo = jsonResp.requestingUserIdentityCardNo
def requestedIdentityCardNo = jsonResp.requestedIdentityCardNo
// TC kimlik numarasını doğrulamak için metot
def validateTCKN(variableToCheck) {
// TC kimlik numarasının uzunluğunu ve geçerliliğini kontrol et
if (!variableToCheck || variableToCheck.length() != 11) {
requestErrorMessageToTargetAPI = 'Please send a valid parameter: ' + variableToCheck + '.'
} else {
// TC kimlik numarasını matematiksel olarak doğrula
def tcArr = variableToCheck.substring(0, 11).split('')
def tek = tcArr[0].toInteger() + tcArr[2].toInteger() + tcArr[4].toInteger() + tcArr[6].toInteger() + tcArr[8].toInteger()
def cift = tcArr[1].toInteger() + tcArr[3].toInteger() + tcArr[5].toInteger() + tcArr[7].toInteger()
tek = tek * 7
def sonuc = tek - cift
// Doğrulama hatası durumunda hata mesajı oluştur
if (sonuc % 10 != tcArr[9].toInteger()) {
requestErrorMessageToTargetAPI = 'Please send a valid parameter: ' + variableToCheck + '.'
}
def tcToplam = 0
for (int i = 0; i < 10; i++) {
tcToplam += tcArr[i].toInteger()
}
// Doğrulama hatası durumunda hata mesajı oluştur
if (tcToplam % 10 != tcArr[10].toInteger()) {
requestErrorMessageToTargetAPI = 'Please send a valid parameter: ' + variableToCheck + '.'
}
}
}
// Her iki TC kimlik numarasını da doğrula
validateTCKN(requestingUserIdentityCardNo)
validateTCKN(requestedIdentityCardNo)
Örnek Request
{
"requestingUserIdentityCardNo": 11111111110,
"requestedIdentityCardNo": 11111111112
}
Açıklama
Bu script şu işlemleri yapar:
- JSON Parse Etme:
JsonSlurper kullanarak gelen request body’yi parse eder.
- TC Kimlik No Çıkarma: JSON’dan
requestingUserIdentityCardNo ve requestedIdentityCardNo alanlarını çıkarır.
- Doğrulama: Her bir TC kimlik numarası için:
- Uzunluk kontrolü (11 karakter olmalı)
- Matematiksel algoritma ile doğrulama (9. ve 10. hanelerin kontrolü)
- Hata Yönetimi: Doğrulama başarısız olursa
requestErrorMessageToTargetAPI değişkenine hata mesajı atanır ve istek backend’e gönderilmez.
Bu script, request hattında (Request Policy) çalıştırılmalıdır çünkü requestBodyTextFromClient değişkenini kullanmaktadır.