Ana içeriğe atla

Groovy Script

import groovy.json.JsonSlurper
import org.apache.commons.codec.binary.Base64

def authzHeaderValue = requestHeaderMapToTargetAPI.get("Authorization")
authzHeaderValue = authzHeaderValue.split('\\.')[1] //Bearer yazan kısım için, veri her zaman ilk nokta işaretinden sonra geçtiği için ayrılma ihtiyacı duyulmamıştır.

def decodedValue = new String(Base64.decodeBase64(authzHeaderValue),"UTF-8")
def jsonSlurper = new JsonSlurper()
def jsonMessage = jsonSlurper.parseText(decodedValue)

//do some logic with json:
requestHeaderMapToTargetAPI.put("usernameTest",jsonMessage.username)

Açıklama

Bu script şu işlemleri gerçekleştirir:
  1. Token Alma: Authorization header’ından JWT token alınır
  2. Payload Ayrıştırma: JWT token formatı header.payload.signature şeklindedir. Token nokta (.) karakterine göre ayrılarak payload kısmı (ikinci bölüm) alınır
  3. Base64 Decode: Payload kısmı Base64 kodlanmış JSON formatındadır. Bu kısım decode edilir
  4. JSON Parse: Decode edilen veri JSON olarak parse edilir
  5. Veri Kullanımı: İstenen alanlar (örneğin username) çıkarılarak kullanılabilir
Örnekte, payload içindeki username alanı alınarak usernameTest adıyla header’a eklenmektedir.
Bu script, request hattında (Request Policy) çalıştırılmalıdır çünkü requestHeaderMapToTargetAPI değişkenini kullanmaktadır.