Wpis z mikrobloga

Mam obiekt ktory seriazlizuje sie do:

{
"a": "00544",
"b": "bedIwoSOmg",
"c": [
{
"id": 1,
"d": "xx",
"e": "1",
"f": "1"
}
],
"g": "abc",
"h": {
"id": 2
}
}

I teraz chciałbym wartości pól ocenzurować (np. zamiast "00544" dac "0***4")

Jest jakiś dobry interfejs którym to ogarnąć?
- odpada annotowanie kazdego pola w hierarchi @JsonSerializer
- implementacja custom serializer ( extends StdSerializer) - wtedy musze ogarnac cala strukture sam

Potrzebowałbym cos co zostanie wywolane juz przy serializacji samego pola (powiedzmy interesujace mnie pola sa oznaczone JsonView).

Ktoś zna jakas sztuczke?

#fasterxml #jackson #java #json
  • 5
@scriptkitty: No właśnie takie podejście odpada. Musiałbym dla kazdego pola w kilku obiektach to robic. Poza tym, to ma byc zależne od JsonView - dla jednego włączone dla drugiego nie.

W skrócie, darmowy user nie widzi danych - ale ma funkcjonalność. Standardowy user - widzi wszystkie dane.
@mccloud: org.springframework.boot.actuate.endpoint.Sanitizer
Konwertujesz klasę do JsonNode i możesz jechać po polach, sprawdzając po nazwach. Spring używa tej klasy do gwiazdkowania haseł, gdy wystawiasz config przez actuatora