2011-03-20 59 views

回答

3

你是爲了做到這一點的方式,你的榜樣,是對.secure()方法。它被添加到Play 1.0.3.2中。

因此,它看起來像

@{Secure.login().secure()} 

這是改變從HTTP到HTTPS URL中的路由器對象的特殊方法。我最後一次檢查,但沒有改變端口。我提出了一個錯誤,但不知道它是不是固定在1.2主分支,但(https://github.com/playframework/play/blob/master/framework/src/play/mvc/Router.java)。

這樣做的原因,是那部戲預計HTTP服務器坐着玩的盈方在生產環境,並處理HTTPS你,並通過代理來扮演一個簡單的HTTP請求。 .secure()的目的是告訴URL切換到HTTPS,但仍然通過相同的域。

我不認爲有很多(這是很好的,簡單,無)的替代品。

  • 您可以使用Play源並更改Router.java文件,以便它也更改端口號(在安全方法中)。或者,您可以編寫一個模仿Router.reverse的FastTag(實際上@符號的作用),但是用一個安全的替換端口號。

+0

版本的打法是1.0.3.2(只是爲了防止有人搜索1.3.2這還沒有存在;);)) – mandubian 2011-03-21 09:57:03

1

如codemwnci解釋的,在PROD,通常是播放後面管理所有安全信道的問題和其也可以用於平衡的前代理。
@ {Secure.login()。安全()}應該工作,但它只會改變HTTP到HTTPS。
另外,我想補充的啞cludge可以在控制器中使用的:

redirect("http://www.zenexity.fr:9876"); 

;)

+0

我會爭辯說,這更好地回答了這個問題,因爲我真的來這裏尋找這個,但我的問題與安全無關。被接受的答案回答了提問者*提問*的問題,但不是他們*實際提問的問題。 – 2014-10-16 15:01:06