我有:
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))
由于此字段用于我需要不加密字段的其他地方。我想在对象持久化到数据库之前加密敏感数据。
有任何想法吗?
提前致谢!
编辑:我知道,这看起来是一个糟糕的设计,所以如果有人对如何处理它有更好的想法,我期待着收到你的来信:)