Maison  >  Article  >  Java  >  Comment puis-je contrôler la sérialisation et la désérialisation JSON des données sensibles dans Spring JSONView ?

Comment puis-je contrôler la sérialisation et la désérialisation JSON des données sensibles dans Spring JSONView ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-19 18:56:02581parcourir

How Can I Control JSON Serialization and Deserialization of Sensitive Data in Spring JSONView?

Contrôle de la sérialisation et de la désérialisation JSON avec @JsonIgnore

Dans les applications Spring JSONView, personnaliser la façon dont les propriétés sont sérialisées et désérialisées peut s'avérer difficile. Un scénario courant est celui où nous souhaitons exclure des données sensibles telles que des mots de passe hachés lors de la sérialisation tout en pouvant les désérialiser.

Pour y parvenir, nous utilisons l'annotation @JsonIgnore sur la propriété password. Cependant, cela peut également empêcher la désérialisation de la propriété, ce qui rend l'inscription des utilisateurs difficile lorsqu'ils n'ont pas de mot de passe existant.

La solution dépend de la version de Jackson utilisée. Avant la version 1.9, nous pouvions utiliser @JsonIgnore uniquement sur la méthode getter. Pour les versions plus récentes, nous ajoutons les annotations suivantes :

@JsonProperty(access = JsonProperty.Access.WRITE_ONLY) : Cette annotation sur la méthode setter permet la sérialisation mais bloque la désérialisation.

Alternativement, l'utilisation de l'argument de type d'accès READ_ONLY de @JsonProperty permet également d'obtenir this :

@JsonProperty(access = JsonProperty.Access.READ_ONLY)
private String password;

Ces annotations garantissent que la propriété du mot de passe n'est sérialisée que lors de la conversion JSON mais peut toujours être désérialisée lors de la création de l'objet.

En suivant ces techniques, nous pouvons contrôler sélectivement la sérialisation JSON et désérialisation des propriétés sensibles, offrant flexibilité et sécurité dans les applications Web.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn