使用 Heroku 上的 Ninja 框架将 HTTP 重定向到 HTTPS

Posted

技术标签:

【中文标题】使用 Heroku 上的 Ninja 框架将 HTTP 重定向到 HTTPS【英文标题】:Redirect HTTP to HTTPS with Ninja framework on Heroku 【发布时间】:2017-11-05 00:28:42 【问题描述】:

如何配置运行在 Heroku 上的 Ninja Web 应用强制使用 SSL,即将所有请求重定向到 HTTPS?

【问题讨论】:

【参考方案1】:

这是要添加到 conf 包中的类:

public class Filters implements ApplicationFilters 
  @Override
  public void addFilters (List<Class<? extends Filter>> list) 
    list.add (HttpsFilter.class);
  
  public static class HttpsFilter implements Filter 
    @Override
    public Result filter (FilterChain filterChain, Context context) 
      if ("http".equals (context.getHeader ("X-Forwarded-Proto"))) 
        return Results.redirect ("https://" + context.getHostname ()
          + context.getRequestPath ());
      
      return filterChain.next (context);
    
  

【讨论】:

【参考方案2】:

如果您在 ninja 框架文档中看起来不错,则会指出如何配置它以获得您想要的内容

http://www.ninjaframework.org/documentation/configuration_and_modes.html

【讨论】:

这并没有告诉我如何将 http 请求重定向到 https。 好的,我想我明白了,您是否希望当用户连接到端口 80 时,您希望将他重定向到 443? 是的,你已经猜到了。 OK 我想你应该在你的网络服务器上设置它,这是最方便和安全的解决方案,你的网络服务器的名称是什么? (es: apache, tomcat, ecc..) 忍者应用托管在 Heroku 上。

以上是关于使用 Heroku 上的 Ninja 框架将 HTTP 重定向到 HTTPS的主要内容,如果未能解决你的问题,请参考以下文章

Ninja 框架无法将表单解析为 Java 对象

禁止在 heroku 中托管 laravel 应用程序时,您无权访问此 xampp 服务器上的 /

使用 CCMAKE 将 Clang 设置为自己的编译器后 ninja 出错

Ninja 框架端点在尝试将 JSON 映射到自定义对象时抛出 500 错误

Ninja 框架未获取 POST 数据或查看 NinjaProperties

将 spring data jpa 与 ninja java 一起使用