내가 가진 : 나는 모호하게하는 서비스, (암호화) 일부 민감한 데이터를 짓고 있어요스칼라 : 업데이트 클래스 필드 값
case class One(someParam: String) {
private val _defaultTimeout = readFromConfig("defaultTimeout")
val timeout: Timeout = akka.util.Timeout(_defaultTimeout seconds)
val info: Option[Info] = Await.result(someSmartService.getInformationForSomething(someParam)), timeout.duration)
}
. 나는 그런 식으로하고있다 :
def encrypt(oldOne: One): One = {
val encryptedSomeParam = EncryptService.getHash(oldOne.someParam)
val encryptedInfo = encryptInfo(oldOne.info)
// what to do with that? ^^
one.copy(someParam = encryptedSomeParam)
}
또한, 나는이 클래스 "정보"필드 안에있는 데이터를 암호화해야한다. 문제는 그것이 val이고 val의 값을 재 할당 할 수 없다는 것입니다. 그것을하는 쉬운 방법 있는가? 지금은 var로 변경하려고 생각하고 있지만, 그렇게하는 것이 가장 좋은 방법은 아니라고 생각합니다. 또한, 나는 이런 식으로 처음부터이 값으로 암호화 된 데이터를 쓸 수 없습니다 :
val info: Option[Info] = EncryptionService.encrypt(someSmartService.getInformationForSomething(someParam))
를이 필드가 나는 필드가 암호화되지해야 다른 장소에서 사용되기 때문에. 데이터베이스에 개체가 지속되기 전에 중요한 데이터를 암호화하려고합니다.
아이디어가 있으십니까?
미리 감사드립니다.
편집 :이 나쁜 디자인처럼 보이는 것을 알고, 그래서 사람이 더 나은 아이디어가 있으면 어떻게
이
답장을 보내 주셔서 감사합니다. 이것은 좋은 생각처럼 보입니다. 그리고 나는 그것이 최선의 해결책이 될 것이라고 생각합니다. :) 누군가가 결정한다면,이 분야는 게으름을 받아야합니까? – psisoyev
그리고 또 다른 문제가 있습니다. someSmartService.getInformationForSomething이 미래를 반환하므로 정보를 설명하는 데 실수를했습니다. 미안합니다. 나는 그것을 편집했다. – psisoyev
@britva 제 두 번째 편집을보십시오. –