Play Framework Filter for AWS Elastic Load Balancer (forward HTTP to HTTPS)

Here is an example of how to forward HTTP to HTTPS using Play Framework Filter. This is a setup for AWS Elastic Load Balancer. A few points:

  • This is for Play Framework 2.2.x, the API is a bit different for older versions of Play. Scala Filters

  • Play lower-cases the headers thus we have "x-forwarded-proto" - this is inserted by the AWS Elastic Load Balancer. Some docs from AWS, x-forwarded.

  • Using HTTP Strict Transport Security (HSTS) by setting "Strict-Transport-Security" in the response header. You can read more about it here HSTS.