0

我有一个 Lift web 应用程序,我想在其中提供一个 csv 下载链接。csv 由 Lift rest 服务提供。

设置这个没问题。然而; 为了使它安全和顺利地工作,我需要使用已经建立的经过身份验证的 Web 会话。

这是我当前与其他休息服务的休息身份验证。我可以在下面的???中添加网络用户的任何角色;还是我完全错过了重点?

LiftRules.authentication = HttpBasicAuthentication("lift") {
  case (`webshopUser`, `webshopPwd`, _) =>
    userRoles(webshopRole :: Nil)
    true
  case (`mailingListUser`, `mailingListPwd`, _) =>
    userRoles(mailingListRole :: Nil)
    true
}

LiftRules.httpAuthProtectedResource.append {
  case Req("rest" :: "mailingLists" :: _, _, _) => Full(mailingListRole)
  case Req("rest" :: "mamberships" :: "year" :: _, _, _) => ???
  case Req("rest" :: "memberships" :: _, _, _) => Full(webshopRole)
}
4

1 回答 1

0

该角色只是一个允许您控制对资源的访问的任意权限。在您的应用程序中的某个地方,您已经定义webshopRolemailingListRole作为实现net.liftweb.http.auth.Role. 为了保护第二个请求,您需要决定是否:

  1. 您只想授予对两个用户帐户之一的访问权限。然后,假设您要允许允许由 定义的帐户 webshopUser。在这种情况下,您将使用Full(webshopRole).

  2. 您希望两个用户都具有访问权限。在这种情况下,您将定义一个类似于定义方式的新角色webshopRole,在本例中 - 我们将其命名为csvRole。然后您将该角色添加到HttpBasicAuthentication规则中,例如:userRoles(webshopRole :: csvRole :: Nil)。在映射中,您将使用:Full(csvRole)

于 2013-02-05T19:23:31.347 回答