Masked Data Transmission in DB2-API Web Service Response
Groovy Script
import groovy.json.JsonOutput
def parser = new groovy.json.JsonSlurper()
def jsonResp = parser.parseText(responseBodyTextToClient)
static String mask(String input, int exceptFirst, int exceptLast) {
String regex="(?<=.{" + exceptFirst + "}).(?=.{"+ exceptLast + "})"
return input.replaceAll(regex, "*")
}
for(Object data in jsonResp.data) {
data.ADI = mask(data.ADI, 1, 2)
data.SOYADI = mask(data.SOYADI, 1, 2)
data.NUMARA = mask(data.NUMARA, 1, 2)
}
responseBodyTextToClient=JsonOutput.prettyPrint(JsonOutput.toJson(jsonResp))
Explanation
This script:
- JSON Parse Operation: Parses the incoming response (
responseBodyTextToClient) in JSON format. - Mask Function: Masks the middle characters with
*while preserving the first and last characters of the given string. - Data Processing: Loops through the
dataarray in JSON and masks theADI,SOYADI, andNUMARAfields of each element. - Result: Converts the processed JSON back to string format and returns it as a response.
This approach ensures that sensitive data is transmitted securely.
not
This script should be run on the response line (Response Policy) because it uses the responseBodyTextToClient variable.