Scala 使用Scaleanterceptor在游戏中捕获HTTPS!2.2?

Scala 使用Scaleanterceptor在游戏中捕获HTTPS!2.2?,scala,playframework,playframework-2.2,securesocial,Scala,Playframework,Playframework 2.2,Securesocial,我正在尝试制作一个scaleanterceptor来查找X-Forwarded-Proto头,所以基本上如果它在生产中或在代理之后,那么就开始玩吧!自动重定向到SSL 我在编译这段代码时遇到了一些问题,我也不确定这是否适用于SecureSocial插件。我们之所以不在SecureSocial.conf中设置SSL=true,有一些具体的原因,我在这里不赘述 这是我的Global.scala中的内容 在getOrElse之后,我收到一个编译器错误: 非常感谢你的帮助 替换: Action(acti

我正在尝试制作一个scaleanterceptor来查找X-Forwarded-Proto头,所以基本上如果它在生产中或在代理之后,那么就开始玩吧!自动重定向到SSL

我在编译这段代码时遇到了一些问题,我也不确定这是否适用于SecureSocial插件。我们之所以不在SecureSocial.conf中设置SSL=true,有一些具体的原因,我在这里不赘述

这是我的Global.scala中的内容

在getOrElse之后,我收到一个编译器错误:

非常感谢你的帮助

替换:

Action(action.parser) { request =>
与:

您还需要更换:

Redirect(url)
与:


更改了我的攻击方法,改为实施筛选器,而不是覆盖OnRouterRequest:

在Global.scala中:

对象全局扩展带过滤器TTPSFilter带全局设置

然后是HttpsFilter.scala:


实际上,我刚刚制作了一个扩展过滤器,我将发布它:
Action(action.parser) { request =>
Action.async(action.parser) { request =>
Redirect(url)
Future.successful(Redirect(url))
import play.api.mvc.Results._
import play.api.mvc.{SimpleResult, RequestHeader, Filter}
import scala.concurrent._
import ExecutionContext.Implicits.global

object HttpsFilter extends Filter {

  def apply(next: (RequestHeader) => Future[SimpleResult])(request: RequestHeader): Future[SimpleResult] = {
    request.headers.get("X-Forwarded-Proto").collect {
      case "https" =>
        next(request)

      case "http" =>
        val url = "https://"+request.host+request.uri
        Future{ Redirect(url) }

    } getOrElse {
      next(request)
    }
  }

}