Frage

Ich bin mit der Anwendungsebene Verschlüsselung zum Schutz sensibler Daten. Ich brauche das Feld zu verschlüsseln, bevor ich es in der physischen Datenbank speichern und ich brauche es zu entschlüsseln, bevor ich es auf der Benutzeroberfläche angezeigt.

Ich bin der Anwendung des Repository-Muster in der Anwendung.

Ist das Daten-Verschlüsselung / Entschlüsselung Code gehört innerhalb oder außerhalb der Repository-Klasse?

Meine aktuellen Gedanken sind, dass, wenn die Daten im Ruhezustand ist, Verschlüsselung ein Aspekt des Repository und die Serviceklasse des Repository verwenden, sollte mit diesem Verschlüsselungscode nicht überladen sein.

Die Service-Klasse ist für die Validierung und Geschäftslogik verantwortlich, aber der Verschlüsselungsalgorithmus und wie die Daten im Ruhezustand gespeichert ist, bis zu der Repository-Implementierung.

Ist das eine vernünftige Praxis oder bin ich etwas fehlt?

War es hilfreich?

Lösung

Sie möchte auf keinen Fall die Verschlüsselung in der Serviceklasse.

In gewissem Sinne, die Sie tatsächlich Ihre eigene Frage beantworten, wenn Sie sagen

  

aber der Verschlüsselungsalgorithmus und wie die Daten im Ruhezustand gespeichert ist, bis zu der Repository-Implementierung.

Da Verschlüsselung Teil ist, wie die Daten gespeichert sind, gehört es innerhalb des Repository.

Andere Tipps

Ich würde es in der Dienstschicht gelegt. Hier ist der Grund:

Betrachtet man es aus betriebswirtschaftlicher Regel / Domain Anforderung Perspektive ist die Verschlüsselung der Daten eine Anforderung? Sollte es mit Tests validiert werden? Wenn ja, sollten Sie es an der gleichen Stelle platzieren Sie alle Ihre anderen prüfbare Geschäftslogik setzen. Mit anderen Worten, in dem Dienst.

Was mich betrifft, Business-Logik (was zu verschlüsseln, was nicht zu verschlüsseln) gehört nicht in das Repository. Die Objekte beibehalten werden sollen, sollten für die Persistenz (oder so nah wie möglich) bereit sein, wenn sie in das Repository gegeben. Ansonsten ist das Repository verantwortlich für die Persistenz und Geschäftsregeln umzusetzen und dann bist du nicht mehr wirklich das Repository-Muster mit mehr ...

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top