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