1

下面是我想为我的 Play 应用程序配置安全配置文件的方式——每个条目都auth.securityProfiles包含一Operation => Roles对:

auth {
    securityProfiles {
        myOperation1 = "author, auditor"
        myOperation2 = "admin"
        myOperationN = "auditor, default"
    }
}

如何阅读部分中的所有条目auth.securityProfiles以生成Map这样的内容?

val securityProfiles = Map(
  "myOperation1" -> "author, auditor",
  "myOperation2" -> "admin",
  "myOperationN" -> "auditor, default"
)

谢谢。

4

1 回答 1

0

这是我的解决方案......我刚刚修改了这样的配置......

auth {
    securityProfiles = [
        {
            operation = "myOperation1"
            roles = ["author", "auditor"]
        }
        {
            operation = "myOperation2"
            roles = ["admin"]
        }
        {
            operation = "myOperationN"
            roles = ["auditor", "default"]
        }
    ]
}

...然后使用以下代码剪辑器阅读它:

import scala.collection.mutable.Map

var securityProfiles = Map[String, List[String]]().withDefaultValue(List.empty)
  configuration.getConfigList("auth.securityProfiles").map { _.toList.map { config =>
    config.getString("operation").map { op =>
      securityProfiles += (op -> config.getStringList("roles").map(_.toList).getOrElse(List.empty))
  }
}}

我希望这会有所帮助。

于 2014-03-26T07:57:46.720 回答