gpt4 book ai didi

scala - 使用框架 REST 进行基本身份验证和 SSL

转载 作者:行者123 更新时间:2023-12-03 04:57:59 25 4
gpt4 key购买 nike

我是这个身份验证领域的新手。我进行了很多搜索,但无法找到一种方法来验证对 Play 服务器进行的 REST 调用。有哪些不同的方法和最佳实践?

最佳答案

一个非常简单的方法是使用 Action 组合。有关示例,请查看 Guillaume Bort 提供的此要点:https://gist.github.com/guillaumebort/2328236 。如果您想在异步操作中使用它,您可以编写如下内容:

def BasicSecured[A](username: String, password: String)(action: Action[A]): Action[A] = Action.async(action.parser) { request =>
request.headers.get("Authorization").flatMap { authorization =>
authorization.split(" ").drop(1).headOption.filter { encoded =>
new String(org.apache.commons.codec.binary.Base64.decodeBase64(encoded.getBytes)).split(":").toList match {
case u :: p :: Nil if u == username && password == p => true
case _ => false
}
}
}.map(_ => action(request)).getOrElse {
Future.successful(Unauthorized.withHeaders("WWW-Authenticate" -> """Basic realm="Secured Area""""))
}
}

SSL 与基本身份验证没有任何关系。您可以直接使用 HTTPS 访问 API,也可以通过前端 HTTP 服务器(例如 ngnix)使用 HTTPS。 Play 文档中有关于此主题的详细信息。

关于scala - 使用框架 REST 进行基本身份验证和 SSL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29491703/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com