У меня есть приложение Play Framework, работающее на Heroku, используя конечную точку SSL Heroku.
Я хочу сделать все страницы доступными только через SSL
.
Какой лучший способ для этого?
До сих пор лучшим решением было использовать onRouteRequest
в моих GlobalSettings
и маршрутных non-SSL
запросах для специального обработчика перенаправления:
override def onRouteRequest(request: RequestHeader): Option[Handler] = {
if (Play.isProd && !request.headers.get("x-forwarded-proto").getOrElse("").contains("https")) {
Some(controllers.Secure.redirect)
} else {
super.onRouteRequest(request)
}
}
и
package controllers
import play.api.mvc._
object Secure extends Controller {
def redirect = Action { implicit request =>
MovedPermanently("https://" + request.host + request.uri)
}
}
Есть ли способ сделать это полностью из GlobalSettings
? Или что-то еще лучше?