İş Kuralı (Business Rule)
İş Kuralı Politikası ile istek veya yanıt mesajının üzerinde belirli kural veya kuralların doğrulaması yapılır. Eğer mesaj kural(lar)a uyuyorsa, bu durumda iş kuralında tanımlanan eylem(ler) uygulanır.
Politika ayarlarını içeren görsele aşağıda yer verilmiştir:
Politika konfigürasyonu için kullanılan alanlar aşağıdaki tabloda görülmektedir.
Alan | Açıklama |
---|---|
Açıklama (Description) | Politikanın kullanımını ve yönetimini kolaylaştırmak için açıklama yazılabilir. |
Eylem Listesi (Action List) | Apinizer'a gelen/dönen mesajlara Apinizer tarafından uygulanabilecek kurallar eklenir ve listelenir. |
Eylem Ekleme
Ekle tuşuna basarak Politikaya bir eylem eklenmek istendiğinde kullanıcının karşısına aşağıdaki görseldeki gibi bir ekran çıkar:
Bu görselde de gözüktüğü gibi 4 tip eylem seçilebilir:
- Ekle (Add): İsteğin/yanıtın başlık, parametre veya gövdesi içerisine olmayan bir değer eklenir.
- Değiştir (Modify): İsteğin/yanıtın başlık, parametre veya gövdesi içerisinde var olan bir alanın değeri değiştirilir.
- Sil (Delete): İsteğin/yanıtın başlık, parametre veya gövdesi içerisinde var olan bir alanın değeri veya alanın tamamı silinir.
- Akışı Kes (Stop): İsteğin/yanıtın akışını keserek bir sonraki adıma geçmesi engellenir ve istemciye akışın durdurulduğu bilgisi dönülür.
Ekleme Eylemi
Mesajın, başlık, parametre ya da gövdesine değer eklemek için kullanılır.
Bu eylem seçildiğinde mesajda eklenmek istenen değerin hiç olmadığı varsayılır.
Değerin nereye ekleneceği Enjeksiyon Hedefi (Injection Target) değişkeni ile belirlenir.
Bu değişkenin tipi;
- Başlık ise mesajın başlığına değişkendeki "Başlık Adı" eklenir.
- Parametre ise mesajın parametresine değişkendeki "Parametre Adı" eklenir.
- Mesaj Gövdesi ise mesajın gövdesinden değişkendeki belirtilen yola ekranda yeni açılan "Eleman Adı" eklenir.
Enjeksiyon hedefi değişkeni seçildiğinde eklenen alanın değerinin nereden alınması gerektiği girilmelidir, bunun için hedef değerin kaynak tipi belirlenir:
Hedef değerin kaynak tipi kural içerisinde verilebildiği gibi değişken ile mesajın başka bir bölümünden de alınabilir.
Değeri kural içinde vermek için Değeri Belirtin (Specify the value) ifadesi seçilir ve çıkan alana ilgili değer metin olarak girilir.
Değeri değişken ile vermek için Değişken Kullan (Use a variable) ifadesi seçilir ve ilgili değişken seçilir.
Burada farklı olan durumun mesajın içerisine bir değer eklenmek istendiğinde yaşanır.
Örneğin aşağıdaki görseldeki örnekte Enjeksiyon Hedefi değişkeni olarak Soap XML Mesajının ilk elementi hedef alınmıştır.
Yukarıdaki örnekte kural çalıştığında Soap XML Mesajının ilk elementi olarak "userid" adında bir XML elemanı oluşturulacak ve bunun değeri mesajın başlığındaki "username" başlığının değerinden gelecektir.
Burada mesajın XML olarak mı JSON olarak mı işletileceğine "Enjeksiyon Hedefi" değişkenindeki "Gövde Tipi" değerine göre karar verilmektedir.
Düzenleme Eylemi
Mesajın, başlık, parametre ya da gövdesindeki değeri değiştirmek için kullanılır.
Bu eylem seçildiğinde mesajda eklenmek istenen değerin olduğu varsayılır, bulunamaması durumunda politika hata verir. Kuralın koşul kısmında buna dikkat edilmelidir.
Mesajın neresindeki değerinin değiştirilmek istendiğini belirtmek için değişken seçilir.
Sonrasında bu değişkenin değerinin hangi veri tipinde olduğu belirtilir.
Seçilen veri tipine göre gelecek eylemler değişiklik gösterir.
Veri tipi ve bu veri tiplerine ait işlemler şunlar olabilir:
Veri Tipi | Eylem | Açıklama |
---|---|---|
Numerik | Ekleme | Değiştirilecek olan değer ile hedef değeri toplayarak değiştirir. |
Silme | Değiştirilecek olan değerden hedef değeri silerek değiştirir. | |
Çarpma | Değiştirilecek olan değer ile hedef değeri çarparak değiştirir. | |
Bölme | Değiştirilecek olan değer ile hedef değeri bölerek değiştirir. | |
Mod Alma | Değiştirilecek olan değerin hedef değere göre modunu alarak değiştirir. | |
Üssünü Alma | Değiştirilecek olan değerin hedef değer kadar üssünü alarak değiştirir. | |
Metin | Concat | Değiştirilecek olan değerin sonuna hedef değeri bitiştirir. |
Decode Base64 | Değiştirilecek olan değeri Base64 şifre çözme işlemine tabi tutarak değiştirir. | |
Encode Base64 | Değiştirilecek olan değeri Base64 şifreleme işlemine tabi tutarak değiştirir. | |
Extract JWT Header Claim | Hedef değer JWT olarak ayrıştırılır ve JWT başlığından başlık değeri alınır. Belirtilen değeri okumak için girilen değer $. ile başlıyorsa, başlık JSON'undaki JsonPath değeri alınır; aksi takdirde, başlıktaki claim değeri alınır. | |
Extract JWT Body Claim | Hedef değer JWT olarak ayrıştırılır ve JWT gövdesinden başlık değeri alınır. Belirtilen değeri okumak için girilen değer $. ile başlıyorsa, başlık JSON'undaki JsonPath değeri alınır; aksi takdirde, başlıktaki claim değeri alınır. | |
Format | javax.swing.text.MaskFormatter sınıfında belirtildiği özellikler ile değeri maskeleyerek değiştirir. | |
Insert | Değiştirilecek olan değerin belirtilen metin indeksinden itibaren hedef değeri yazarak değiştirir. | |
Mask | Değiştirilecek olan değeri tamamını ya da metin indeksleri ile belirtilen aralığını maskeleyerek değiştirir. | |
Replace First | Değiştirilecek olan değerde belirtilen değiştirme verisinin ilk eşleşenini hedef değer ile değiştirir. | |
Replace | Değiştirilecek olan değer içindeki belirtilen değiştirme verisinin tüm eşleşenlerini hedef değer ile değiştirir. | |
Replace With | Değiştirilecek olan değeri hedef değer ile tamamen değiştirir. | |
Substring | Değiştirilecek olan değerin belirtilen metin indeksleri kısmının dışında kalan alanları silerek değiştirir. | |
Transform | Değiştirilecek olan değeri XSLT, JOLT, XML to JSON veya JSON to XML işlemine tabi tutarak değiştirir. | |
Trim | Değiştirilecek olan değerin başındaki ve sonundaki boşlukları kaldırır. | |
URL Decode | Değiştirilecek olan değeri URL Decode işlemine tabi tutarak değiştirir. | |
URL Encode | Değiştirilecek olan değeri URL Encode işlemine tabi tutarak değiştirir. | |
Zaman | Ekleme | Değiştirilecek olan değere belirtilen zaman birimi ve miktarını ekler. |
Silme | Değiştirilecek olan değere belirtilen zaman birimi ve miktarını siler. |
Silme Eylemi
Mesajın, başlık, parametre ya da gövdesindeki değeri silmek için kullanılır.
Bu eylem seçildiğinde mesajda silinmek istenen değerin olduğu varsayılır, bulunamaması durumunda politika hata vermez, diğer işlemlere devam edilir.
Mesajın neresinin silineceği değişken ile belirtilir.
Akışı Durdurma Eylemi
Bu eylem tipi seçildiğinde mesajın akışını kesilerek bir sonraki adıma geçmesi engellenir ve istemciye akışın durdurulduğu bilgisi dönülür.
Koşullar ve Hata Mesajı Özelleştirme panellerinin açıklamasını görüntülemek için Politikalar (Policies) sayfasını ziyaret edebilirsiniz.