PlayFramework HTTPS仅在prod模式下路由,HTTP在dev模式下路由

PlayFramework HTTPS仅在prod模式下路由,HTTP在dev模式下路由,playframework,Playframework,我希望在生产模式下某些路由始终是HTTPS,但在开发模式下是HTTP。现在,我知道创建https路由的唯一方法是使用: @{Controller.action().secure()},但这会将它们硬编码为https 这在routes或application.conf设置中可能吗?将其工作方式从开发模式更改为生产模式的唯一简单方法是,只在HTTP模式下播放,然后使用HTTP服务器(如NGinx、Lighttp或Apache)在生产模式下保护整个站点 这种方法意味着您的应用程序在两种模式下都保持不变

我希望在生产模式下某些路由始终是HTTPS,但在开发模式下是HTTP。现在,我知道创建https路由的唯一方法是使用:
@{Controller.action().secure()}
,但这会将它们硬编码为https


这在routes或application.conf设置中可能吗?

将其工作方式从开发模式更改为生产模式的唯一简单方法是,只在HTTP模式下播放,然后使用HTTP服务器(如NGinx、Lighttp或Apache)在生产模式下保护整个站点

这种方法意味着您的应用程序在两种模式下都保持不变,并且配置是在比您的应用程序更高的层上完成的


然而,这种方法意味着你的整个网站将变成HTTPS,但我并不认为这是一件坏事,事实上,它可能会让你的用户对你整个网站的安全性更有信心。

将这种工作方式从开发模式改为生产模式的唯一简单方法是只使用HTTP,然后在Prod模式下通过使用NGinx、Lighttp或Apache等HTTP服务器来保护整个站点

这种方法意味着您的应用程序在两种模式下都保持不变,并且配置是在比您的应用程序更高的层上完成的


然而,这种方法将意味着您的整个网站将成为HTTPS,但我并不认为这是一件坏事,事实上,它可能会让您的用户对整个网站的安全性多一点信心。

+1代表所有HTTPS。如果你有一个通过HTTP运行会话的cookie,那么在大多数WiFi网络上,这是一个一键劫持。但是对于混合了HTTP和HTTPS部分的环境呢?一种方法是强制应用程序的特定部分(例如“/secure/…”)使用https,并让应用程序的其余部分使用http。(在像Nginx这样的前端代理的帮助下)这一切都很好,除非我还没有找到一个解决方案,根据我所在的应用程序的不同部分,用给定的方案呈现模板中的URL。(使用给定方案定义的反向路由)当然,如果您在amazon环境中,我听说如果您让ELB负载平衡器终止https,https的性能会很糟糕,如果您在Web服务器上终止https,效果会更好(我想这是一个很大的折衷)…如果您在amazon上已经有10个Web服务器,最好在那里终止,因为您不想因为启用了https而得到10个ELB。所有https都是+1。如果你有一个通过HTTP运行会话的cookie,那么在大多数WiFi网络上,这是一个一键劫持。但是对于混合了HTTP和HTTPS部分的环境呢?一种方法是强制应用程序的特定部分(例如“/secure/…”)使用https,并让应用程序的其余部分使用http。(在像Nginx这样的前端代理的帮助下)这一切都很好,除非我还没有找到一个解决方案,根据我所在的应用程序的不同部分,用给定的方案呈现模板中的URL。(使用给定方案定义的反向路由)当然,如果您在amazon环境中,我听说如果您让ELB负载平衡器终止https,https的性能会很糟糕,如果您在Web服务器上终止https,效果会更好(我想这是一个很大的折衷)…如果您在amazon上已经有10个Web服务器,最好在那里终止,因为您不希望仅仅因为启用了https就得到10个ELB。