İş 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

İsim (Name)

Politikanın kullanımını ve yönetimini kolaylaştırmak için isim yazılabilir. Politikaların yönetimi ve seçimi sırasında bu isme ihtiyacınız olacaktır.

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 TipiEylemAçıklama
Numerik




Ekleme

Değiştirilecek olan değer ile hedef değeri toplayarak değiştirir.

SilmeDeğiştirilecek olan değerden hedef değeri silerek değiştirir.
ÇarpmaDeğiştirilecek olan değer ile hedef değeri çarparak değiştirir.
BölmeDeğiştirilecek olan değer ile hedef değeri bölerek değiştirir.
Mod AlmaDeğiştirilecek olan değerin hedef değere göre modunu alarak değiştirir.
Üssünü AlmaDeğ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 Base64Değiştirilecek olan değeri Base64 şifre çözme işlemine tabi tutarak değiştirir.
Encode Base64Değ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 ClaimHedef 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.
Formatjavax.swing.text.MaskFormatter sınıfında belirtildiği özellikler ile değeri maskeleyerek değiştirir.
InsertDeğiştirilecek olan değerin belirtilen metin indeksinden itibaren hedef değeri yazarak değiştirir.
MaskDeğiştirilecek olan değeri tamamını ya da metin indeksleri ile belirtilen aralığını maskeleyerek değiştirir.
Replace FirstDeğ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 WithDeğiştirilecek olan değeri hedef değer ile tamamen değiştirir.
SubstringDeğiştirilecek olan değerin belirtilen metin indeksleri kısmının dışında kalan alanları silerek değiştirir.
TransformDeğiştirilecek olan değeri XSLT, JOLT, XML to JSON veya JSON to XML işlemine tabi tutarak değiştirir.
TrimDeğ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 EncodeDeğiştirilecek olan değeri URL Encode işlemine tabi tutarak değiştirir.
ZamanEklemeDeğiştirilecek olan değere belirtilen zaman birimi ve miktarını ekler.
SilmeDeğ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.