scala – 使用基本身份验证和SSL的Play Framework REST
发布时间:2020-12-16 09:02:29 所属栏目:安全 来源:网络整理
导读:我是这个认证领域的新手.我搜索了很多,但无法找到一种方法来验证对Play服务器进行的REST调用.各种方式和最佳实践有哪些? 解决方法 一种非常简单的方法是使用Action Composition.有关示例,请查看Guillaume Bort提供的这个Gist: https://gist.github.com/gui
我是这个认证领域的新手.我搜索了很多,但无法找到一种方法来验证对Play服务器进行的REST调用.各种方式和最佳实践有哪些?
解决方法
一种非常简单的方法是使用Action Composition.有关示例,请查看Guillaume Bort提供的这个Gist:
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与基本身份验证无关.您可以直接或通过前端HTTP服务器(如ngnix)将HTTPS用于API.有关此主题的Play文档中有相当不错的详细信息. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |