문제

민감한 데이터를 보호하기 위해 응용 프로그램 수준 암호화를 사용하고 있습니다. 필드를 실제 데이터베이스에 저장하기 전에 필드를 암호화해야하며 사용자 인터페이스에 표시하기 전에 해독해야합니다.

응용 프로그램에 저장소 패턴을 적용하고 있습니다.

데이터 암호화/암호 해독 코드가 저장소 클래스 내부 또는 외부에 속합니까?

내 현재 생각은 데이터가 휴식을 취할 때 암호화가 저장소의 한 측면이며 저장소를 사용하는 서비스 클래스는이 암호화 코드로 혼란스럽지 않아야한다는 것입니다.

서비스 클래스는 유효성 검사 및 비즈니스 로직을 담당하지만 암호화 알고리즘과 데이터가 REST에서 저장되는 방법은 저장소 구현에 달려 있습니다.

이것은 합리적인 연습입니까, 아니면 내가 뭔가를 놓치고 있습니까?

도움이 되었습니까?

해결책

당신은 확실히 서비스 클래스에서 암호화를 원하지 않습니다.

어떤 의미에서, 당신은 실제로 당신이 말할 때 자신의 질문에 대답합니다.

그러나 암호화 알고리즘과 데이터가 REST에서 저장되는 방법은 저장소 구현에 달려 있습니다.

암호화는 데이터가 저장되는 방식의 일부이므로 저장소 내부에 속합니다.

다른 팁

서비스 계층에 넣을 것입니다. 이유는 다음과 같습니다.

비즈니스 규칙 / 도메인 요구 사항 관점에서이를 살펴보면 데이터를 요구 사항으로 암호화합니까? 테스트로 검증해야합니까? 그렇다면, 다른 모든 테스트 가능한 비즈니스 로직을 넣은 것과 같은 장소에 배치해야합니다. 다시 말해, 서비스에서.

내가 염려하는 한, 비즈니스 로직 (암호화해야 할 내용, 암호화하지 않는 것)은 저장소에 속하지 않습니다. 지속될 물체는 저장소에 주어질 때 지속성 (또는 가능한 한 가깝게)을 준비해야합니다. 그렇지 않으면 저장소는 지속성을 담당합니다 그리고 비즈니스 규칙을 구현하면 더 이상 더 이상 저장소 패턴을 사용하지 않습니다 ...

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top