Question

J'utilise un cryptage au niveau de l'application pour protéger les données sensibles. Je dois chiffrer le champ avant de le stocker dans la base de données physique et le déchiffrer avant de le montrer sur l'interface utilisateur.

J'applique le modèle de référentiel dans l'application.

Le code de cryptage / décryptage des données appartient-il à l'intérieur ou à l'extérieur de la classe Repository?

Mon opinion actuelle est que, lorsque les données sont au repos, le chiffrement est un aspect du référentiel et que la classe de service utilisant le référentiel ne doit pas être encombrée de ce code de chiffrement.

La classe de service est responsable de la validation et de la logique métier, mais l'algorithme de chiffrement et la façon dont les données sont stockées au repos dépendent de la mise en œuvre du référentiel.

Est-ce une pratique raisonnable ou est-ce que quelque chose me manque?

Était-ce utile?

La solution

Vous ne voulez certainement pas de cryptage dans la classe de service.

D'une certaine manière, vous répondez à votre propre question lorsque vous dites

  

mais l’algorithme de chiffrement et la façon dont les données sont stockées au repos incombent à la mise en œuvre du référentiel.

Le chiffrement faisant partie de la manière dont les données sont stockées, il appartient au référentiel.

Autres conseils

Je le mettrais dans la couche service. Voici pourquoi:

En termes de règles métier / d'exigences de domaine, le chiffrement des données est-il une exigence? Devrait-il être validé avec des tests? Si tel est le cas, vous devez le placer au même endroit que l'ensemble de votre autre logique métier testable. En d'autres termes, dans le service.

En ce qui me concerne, la logique métier (ce qu'il faut chiffrer, ce qu'il ne faut pas chiffrer) n'appartient pas au référentiel. Les objets à conserver doivent être prêts pour la persistance (ou aussi proches que possible) lorsqu'ils sont donnés au référentiel. Sinon, le référentiel est responsable de la persistance et de la mise en œuvre des règles métier. Dans ce cas, vous n'utilisez plus vraiment le modèle de référentiel ...

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top