Class PersonalDataSanitizer

java.lang.Object
br.com.seedgrid.privacy.masking.PersonalDataSanitizer

@ApplicationScoped public class PersonalDataSanitizer extends Object
Serializa um objeto para JSON aplicando mascaramento de dados pessoais.

Antigo AuditSanitizerService do audit. Precedência das regras (mais forte primeiro):

  1. MaskRule passadas pelo chamador (ex.: endpoint) — vencem tudo
  2. PersonalData do próprio payload (DTO/entity serializado)
  3. PersonalData do modelo fonte (opcional) — fallback
  • Constructor Details

    • PersonalDataSanitizer

      public PersonalDataSanitizer(com.fasterxml.jackson.databind.ObjectMapper mapper, PersonalDataResolver resolver)
  • Method Details

    • sanitizeToJson

      public String sanitizeToJson(Object value, Class<?> sourceModelType, MaskRule[] overrideRules)
    • sanitizeToJson

      public String sanitizeToJson(Object value, MaskRule[] overrideRules)
      Sobrecarga sem modelo fonte.
    • sanitize

      public <T> T sanitize(T value, Class<T> type, MaskRule[] overrideRules)
      Redige o objeto e devolve uma nova instância do mesmo tipo com os campos de dados pessoais mascarados. Conveniente para services que retornam DTO/entidade (o framework serializa a resposta). O objeto original NÃO é alterado.

      Atenção: o mascaramento transforma valores em texto (mascara/hash), então esta forma só faz o round-trip limpo quando os campos mascarados são String — o caso típico de PII (cpf, nome, e-mail, cep). Mascarar um campo não-String (ex.: BigDecimal, LocalDate) faz a reconversão falhar e o método lança (fail-closed: nunca devolve o objeto cru). Nesses casos use sanitizeToJson(java.lang.Object, java.lang.Class<?>, br.com.seedgrid.privacy.masking.MaskRule[]).

    • sanitize

      public <T> T sanitize(T value, Class<T> type)
      Sobrecarga sem regras de override.