Log Obfuscation
Este interceptor é usado para ocultar dados selecionados (presentes no header ou body de uma requisição ou resposta) no log do Trace.
| Para criar logs no Trace (acessados por meio do ícone  ), é necessário utilizar o Log interceptor.
Se quiser que os dados sejam criptografados ao invés de ofuscados, é só configurar essa opção no próprio interceptor de Log. | 
Configurando o interceptor
Para configurar o interceptor de Log Obfuscation, é necessário informar a localização (Location — body ou header) da informação a ser ofuscada. Se a informação que você deseja omitir estiver localizada no corpo (body) da requisição, defina uma expressão regular para que a informação seja identificada (Custom regex). Se estiver no header, informe o atributo (Attribute), usando letras minúsculas. Por fim, defina os símbolos nos quais a informação será transformada (no campo Replace to).
 
| É possível ofuscar múltiplas informações com um único interceptor de Log Obfuscation usando uma expressão regular adequada (como explicado aqui). Válido para informações que estiverem no body da requisição. | 
Exemplos de ofuscamento de uma única informação
Imagine que o corpo de uma requisição contenha as informações a seguir:
{
  "name": "Jonathan Crane",
  "alias": "Scarecrow",
  "baseOfOperations": [
    "Gotham City",
    "Arkham Asylum"
  ],
  "status": {
    "alignment": "bad",
    "citizenship": "american",
    "maritalStatus": "single",
    "occupation": [
      "anarchist",
      "serial killer",
      "former psychiatrist",
      "university professor"
    ],
    "active": true
  },
  "characteristics": {
    "gender": "male",
    "height": 1.83,
    "weight": 64,
    "eyes": "blue",
    "hair": "brown"
  }
}Para ofuscar um campo é necessário criar uma expressão regular adequada.
Se quisermos ofuscar o campo "name", por exemplo, podemos incluir as configurações:
 
Como resultado, o Trace mostrará o seguinte log para essa requisição:
{
  "name": **********,
  "alias": "Scarecrow",
  "baseOfOperations": [
    "Gotham City",
    "Arkham Asylum"
  ],
  "status": {
    "alignment": "bad",
    "citizenship": "american",
    "maritalStatus": "single",
    "occupation": [
      "anarchist",
      "serial killer",
      "former psychiatrist",
      "university professor"
    ],
    "active": true
  },
  "characteristics": {
    "gender": "male",
    "height": 1.83,
    "weight": 64,
    "eyes": "blue",
    "hair": "brown"
  }
}Para ofuscar o campo "occupation", podemos incluir as configurações:
 
Como resultado, o Trace mostrará o seguinte log para essa requisição:
{
  "name": "Jonathan Crane",
  "alias": "Scarecrow",
  "baseOfOperations": [
    "Gotham City",
    "Arkham Asylum"
  ],
  "status": {
    "alignment": "bad",
    "citizenship": "american",
    "maritalStatus": "single",
    "occupation": ##########,
    "active": true
  },
  "characteristics": {
    "gender": "male",
    "height": 1.83,
    "weight": 64,
    "eyes": "blue",
    "hair": "brown"
  }
}Por fim, para ofuscar o campo "characteristics", uma forma é incluir as configurações:
 
Como resultado, o Trace mostrará o seguinte log para essa requisição:
{
  "name": "Jonathan Crane",
  "alias": "Scarecrow",
  "baseOfOperations": [
    "Gotham City",
    "Arkham Asylum"
  ],
  "status": {
    "alignment": "bad",
    "citizenship": "american",
    "maritalStatus": "single",
    "occupation": [
      "anarchist",
      "serial killer",
      "former psychiatrist",
      "university professor"
    ],
    "active": true
  },
  "characteristics": {****}
}Se combinarmos os três interceptores, sequencialmente, o Trace mostrará o seguinte log para essa requisição:
{
  "name": **********,
  "alias": "Scarecrow",
  "baseOfOperations": [
    "Gotham City",
    "Arkham Asylum"
  ],
  "status": {
    "alignment": "bad",
    "citizenship": "american",
    "maritalStatus": "single",
    "occupation": ##########,
    "active": true
  },
  "characteristics": {****}
}Porém, uma forma melhor de ofuscar múltiplos campos é utilizando uma única expressão regular mais abrangente (veja nos exemplos abaixo).
Exemplo de ofuscamento de informação do header
Para ofuscar uma informação contida no header da requisição, selecione a localização e informe o atributo.
| O atributo deve ser escrito usando letras minúsculas. | 
Atributos informados em letras maiúsculas ou começando por letra maiúscula não serão ocultados e assim, aparecerão no Trace.
Exemplo de configuração para ocultar o atributo authorization:
 
Como resultado, o Trace mostrará o seguinte log para essa requisição:
host: api-testing.sensedia.com authorization: ********** user-agent: PostmanRuntime/7.28.4 accept: */* postman-token: 1234a-bcd5-67abc-defg789xyz accept-encoding: gzip, deflate, br x-forwarded-for: 123.45.678.900 x-forwarded-proto: https x-envoy-external-address: 123.45.678.900 x-request-id: abcdefg-456f-789g-00gh-hijk10 content-length: 0
Configure um interceptor de Log Obsfuscation para cada atributo que você deseja ocultar. Para atributos do header, não há como configurar múltiplas informações no mesmo interceptor.
Veja a seguir como ofuscar múltiplas informações do body da requisição.
Expressão regular para múltiplas informações
Quando o conjunto de dados fizer parte de um JSON, a expressão regular para múltiplas informações segue a estrutura:
(?<=(<chaves>):)\s*(<regex_tipos>)
| O "\s*" da expressão regular serve para ignorar quaisquer espaços brancos entre chave e valor. | 
Tanto as chaves (informações) quanto as regex para cada tipo de valor devem ser separados por "|".
As regex para os correspondentes tipos de valor são:
- 
números, booleanos e null: [\+\-\w.]+
- 
strings: "[^"]*"
- 
arrays simples: \[[^\]]*\]
- 
objetos simples: \{[^\}]*\}
Exemplos de ofuscamento de múltiplas informações
Agora, imagine que o corpo de uma requisição contenha as informações a seguir:
{
  "name": "Pamela Lillian Isley",
  "alias": "Poison Ivy",
  "baseOfOperations": "Gotham City",
  "status": {
    "alignment": "neutral",
    "citizenship": "american",
    "maritalStatus": "single",
    "occupation": [
      "scientist",
      "eco-terrorist"
    ],
    "active": true
  },
  "characteristics": {
    "gender": "female",
    "height": 1.68,
    "weight": 50,
    "eyes": "green",
    "hair": "red"
  }
}Para ofuscar simultaneamente os campos "name", "occupation" e "characteristics", por exemplo, podemos incluir as configurações:
 
Como resultado, o Trace mostrará o seguinte log para essa requisição:
{
  "name":*****,
  "alias": "Poison Ivy",
  "baseOfOperations": "Gotham City",
  "status": {
    "alignment": "neutral",
    "citizenship": "american",
    "maritalStatus": "single",
    "occupation":*****,
    "active": true
  },
  "characteristics":*****
}Por outro lado, para ofuscar simultaneamente os campos "name", "citizenship", "maritalStatus", "active", "height" e "weight", por exemplo, basta trocar a regex anterior por:
(?<=("name"|"citizenship"|"maritalStatus"|"active"|"height"|"weight"):)\s*("[^"]*"|[\+\-\w.]+)
Como resultado, o Trace mostrará o seguinte log para essa requisição:
{
  "name":*****,
  "alias": "Poison Ivy",
  "baseOfOperations": "Gotham City",
  "status": {
    "alignment": "neutral",
    "citizenship":*****,
    "maritalStatus":*****,
    "occupation": [
      "scientist",
      "eco-terrorist"
    ],
    "active":*****
  },
  "characteristics": {
    "gender": "female",
    "height":*****,
    "weight":*****,
    "eyes": "green",
    "hair": "red"
  }
}| Diferente do caso em que foram utilizados múltiplos interceptores, os símbolos usados para ofuscar as informações são obrigatoriamente os mesmos. | 
Vídeo
Quer entender melhor como ofuscar dados do Trace usando o Log Obfuscation? Dê uma olhada no vídeo abaixo, gravado por nosso Sensedier Marco Milleo.
Share your suggestions with us!
          Click here and then [+ Submit idea]