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