Christophe Blin Christophe Blin - 1 year ago 71
Java Question

How to enforce HTTPS inside java cedar stack under Heroku

I've found many question about enforcing HTTPS under heroku but no response are about the java.

Here are the link I found :

Scala :

Rails : Rails - How to Redirect from to

Please note that I am using Spring MVC 3.1 so I would prefer a solution based on WebMvcConfigurerAdapter.addInterceptors(InterceptorRegistry registry)

Answer Source

Here is hte solution based on spring mvc :

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;

public class ForceHerokuSsl extends HandlerInterceptorAdapter {
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
         String proto = request.getHeader("x-forwarded-proto");
         return proto == null || "https".equalsIgnoreCase(proto);

Then in the configuration :

public class WebMvcConfig extends WebMvcConfigurerAdapter {

   public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new ForceHerokuSslInterceptor());
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download