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 2013-03-01 12:48:32
還有另一個問題:someSmartService.getInformationForSomething返回一個Future,所以我在描述info val時出錯了,對不起。我做了一個編輯。 – psisoyev 2013-03-01 13:00:23
@britva查看我的第二個編輯。 – 2013-03-01 13:08:04