5

在一个 struts 应用程序中,我有一个过滤器,它强制某些页面只能通过重定向通过 https 访问。我正在考虑移植它来提升,所以我的问题是:在这种环境中,是否有一种“提升”方式来实现这种过滤器,或者它与 struts 中的相似/相同?谢谢

4

1 回答 1

11

在 Lift 中,SiteMap 定义了页面访问的规则。您可以创建一个 SiteMap 条目,在某些页面上重定向到 https 站点:

// create an object that does a redirect to the https server if the
// request is on http
object RequireSSL extends Loc.EarlyResponse(
  () => {
    for {
      r <- S.request
      lowLevelReq <- Box !! r if lowLevelReq.scheme == "http"
    } {
      S.redirectTo("https://"+lowLevelReq.serverName+lowLevelReq.contextPath)
    }
    Empty
  })

// Build SiteMap
def entries = (Menu("Home") / "index") ::
(Menu("Secure") / "secure" >> RequireSSL) ::
Nil

希望这可以帮助。

于 2010-06-28T22:09:15.383 回答