在 finatra 应用程序中禁用 http

Disable http in finatra app

我正在将 Finatra 应用程序部署到 Heroku。感谢 Twitter 人员和 Heroku,这是一项非常容易的任务。问题是 Heorku 为您提供开箱即用的 https(如果我试图通过 https 访问我的服务,它就可以正常工作)。尽管如此,它也适用于 http 请求。有没有办法禁用http请求,只保留https?

谢谢

您可以通过将 defaultHttpPort 值覆盖为空字符串来禁用 http 请求(并且不传递 -http.port 标志的值)

import com.twitter.finagle.Http
import com.twitter.finatra.http.HttpServer
import com.twitter.finatra.http.routing.HttpRouter

object ExampleHttpsServerMain extends ExampleHttpsServer

class ExampleHttpsServer
  extends HttpServer
  with Tls {

  override val defaultHttpPort: String = "" // disable the default HTTP port
  override val defaultHttpsPort: String = ":443"

  override def configureHttp(router: HttpRouter): Unit = {
    router
      .add[ExampleController]
  }
}