在 Scalatra 中将 HTTP 请求重定向到 HTTPS 的最简洁方法是什么?

What is the most succinct way to redirect HTTP requests to HTTPS in Scalatra?

我有一个使用 Scalatra 和 Scala 编写的服务,运行 在 AWS ECS 上通过 AWS ELB 侦听。我将 ELB 配置为 TLS 终结器:端口 443 上的 HTTPS 流量和端口 80 上的 HTTP 流量被路由到侦听 ECS 任务上端口 8080 的服务。

我想将所有 HTTP 流量重定向到 HTTPS。我了解 ELB 根据原始请求将 header X-Forwarded-Proto 设置为 httphttps

处理重定向的最佳方法是什么?

如果您的 Scalatra 应用程序前端有反向代理,您可以在此处将 http 重定向到 https: https://aws.amazon.com/premiumsupport/knowledge-center/redirect-http-https-elb/

如果您没有反向代理,则必须在 Scalatra 应用程序中执行相同的操作。我认为最简单的方法是创建一个 servlet 过滤器,通过检查 X-Forwarded-Proto header.

将 http 重定向到 https